I2R

Добавлен
Нужно ли использовать эту функцию во время сравнений и мат. операций для конвертации целочисленных в числа с плавающей точкой?

Принятый ответ

Ок, вечером протестирую, выложу результат.
Протестировал без циклов и в разных потоках, без умножения и функции быстрее.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
28
6 лет назад
0
вызов функции дороже мат. операции.
Понятно, а зачем тогда вообще функция I2R()?
Что потребует больше времени?
local real r = 100.
local integer i = 100
local real u = r + i * 1.
// или
local real r = 100.
local integer i = 100
local real u = r + i
local real r = 100.
local integer i = 100
local boolean b = r != i * 1.
// или
local real r = 100.
local integer i = 100
local boolean b = r != i
0
16
6 лет назад
0
Ну просто функция - это официальный вариант, а можно перемножить
Затраты времени в мат операциях ничтожны по определению
0
28
6 лет назад
0
Ну просто функция - это официальный вариант, а можно перемножить
Нужно ли вообще перемножать?
Что потребует больше времени?
local real r = 100.
local integer i = 100
local real u = r + i * 1.
// или
local real r = 100.
local integer i = 100
local real u = r + i
local real r = 100.
local integer i = 100
local boolean b = r != i * 1.
// или
local real r = 100.
local integer i = 100
local boolean b = r != i
0
20
6 лет назад
0
Жасс расходует время на чтение символов (на хайве видел 5мс на сисвол, но, вероятно, имелось в виду мкс или типа того, ибо иначе выходит больно жирно, не уверен. Расходуется больше времени на чтение чем на подобные мелкие операции. Но делать сильно крутую оптимизацию стоит лишь для циклов, групп юнитов и т.п. Не лагает - забей. Хотя имеет смысл научиться сразу все делатб по человечески, да :)
0
17
6 лет назад
0
Diaboliko, Поделитесь ссылочкой, если осталась? :3
0
20
6 лет назад
0
там на форуме что то со словом lab в качестве подфорума. Я пока не у компа
Там всякие перформанс обсуждения
0
28
6 лет назад
Отредактирован PT153
0
Тестировал время с помощью файла, который дал мне DracoL1ch. Кому нужно, могу кинуть в ЛС.
Без умножения и I2R() вышло быстрее.
Код, которым тестировал
function Trig takes nothing returns nothing
    local real r = 1.
    local integer i = 1
    local integer a = 1
    call ClearTextMessages()
    call StartPerfCounter()
    call DebugMsg("BEGIN!!!")
    call StopPerfCounter()
    call DebugMsg("Non convert")
    call StartPerfCounter()
    loop
        set r = r - i
        set a = a + 1
        exitwhen a == 1000
    endloop
    call StopPerfCounter()
    
    call DebugMsg("*1.")
    set a = 1
    call StartPerfCounter()
    loop
        set r = r - i * 1.
        set a = a + 1
        exitwhen a == 1000
    endloop
    call StopPerfCounter()
    
    call DebugMsg("I2R")
    set a = 1
    call StartPerfCounter()
    loop
        set r = r - I2R(i)
        set a = a + 1
        exitwhen a == 1000
    endloop
    call StopPerfCounter()
endfunction

function InitTrig_I2R_test takes nothing returns nothing
    set gg_trg_I2R_test = CreateTrigger(  )
    call TriggerRegisterTimerEvent( gg_trg_I2R_test, 5, true)
    call TriggerAddAction( gg_trg_I2R_test, function Trig )
endfunction
4
16
6 лет назад
4
жасс читает символы один раз, при загрузке, а дальше всё в байткоде и не имеет никакого значения
тестирование нужно запускать в разных тредах, чтобы не было накопительного эффекта, и без циклов, ибо варкрафт как-то суперплохо с ними работает и они сбивают все замеры. пруфы - www.hiveworkshop.com/threads/hashtable-vs-array.289909
у меня под это дело вынесен специальный скрипт, генерирующий две стены
function SpeedRun takes nothing returns nothing

locals
call fStartTimer()
variant 1
variant 1
variant 1
call BJDebugMsg("Variant 1: "+I2S(fStopTimer()))
call ExecuteFunc("SpeedRunX")
endfunction

function SpeedRunX takes nothing returns nothing

locals
call fStartTimer()
variant 2
variant 2
variant 2
call BJDebugMsg("Variant 2: "+I2S(fStopTimer()))
endfunction
0
28
6 лет назад
Отредактирован PT153
0
Ок, вечером протестирую, выложу результат.
Протестировал без циклов и в разных потоках, без умножения и функции быстрее.
Загруженные файлы
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.