Почему такие функции как DisplayTextToPlayer или BJDebugMsg лагают при долгом использовании?
Осторожно при открытии карты. Мой старый ноут начал сильно фризить после 20 секунд уже.
Что на карте?
globals
    integer C = 0
endglobals


function Trig_Lags_Actions takes nothing returns nothing
    local integer i = 0
    
    loop
        set i = i + 1
        exitwhen i > 20
        set C = C + 1
        //call BJDebugMsg(I2S(C))
        
        call DisplayTextToPlayer(Player(0), 0, 0, I2S(C))
    endloop

endfunction

function InitTrig_Lags takes nothing returns nothing
    set gg_trg_Lags = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Lags, 0.01 )
    call TriggerAddAction( gg_trg_Lags, function Trig_Lags_Actions )
endfunction

Joma, любое обновление данных на экране не бесплатное. Плюс варкрафт однопоточен, и когда ты суёшь такое количество операций с боксом сообщений, то отъедаешь ресурсы у всего остального, поэтому и фпс проседает.
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
1 / 0.01 * 20 = 2000
Действительно есть необходимость выводить две тысячи сообщений в секунду?
7
Makeba, Значит они где то копятся скрытно. Я не думал что такая жалкая вещь как вывод текста такая дорогая штуковина))
28
Принятый ответ
Joma, любое обновление данных на экране не бесплатное. Плюс варкрафт однопоточен, и когда ты суёшь такое количество операций с боксом сообщений, то отъедаешь ресурсы у всего остального, поэтому и фпс проседает.
2
Joma, Плюсом у тебя каждая уникальная строка кэшируется
Чтобы оставить комментарий, пожалуйста, войдите на сайт.