Вариант 1 или 2, как лучше? Или нет разницы?
Cкрин

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

SNART, утечка в BJ-функции. ты обо всех видимых утечках позаботился. А вот группу не удалил, не обнулил локалки. Это где "Юниты в радиусе в .... " - это группа создается при каждом вызове этой команды, и остается не удаленной, Не обнуляются внутри локалки
NazarPunk, ежесекундно утекает группа GetUnitsInRectAll(GetPlayableMapRect()), так как каждый раз создается новая группа, и будет огромное кол-во срзданных групп, и локалки не обнуляются
хотя никогда не пользовался set bj_wantDestroyGroup = true - надо видеть, где это работает
ссылка
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
20
6 лет назад
1
статейка по утечкам
старая, но актуальная
0
18
6 лет назад
0
Сделал так:
Скрин
Тест: (версия игры 1.26)
1000 юнитов (без способностей) с перезарядкой 0.25 сек. атакуют 150 юнитов в течении 5 минут. Тормозов не заметил причем даже при отключенной функции - "set bj_wantDestroyGroup = true".
Но есть проблема:
Если атакующим дать способность, например - "дыхание холода", то возникает утечка, которая вроде бы исчезает, если удалить атакуемых.
Загруженные файлы
0
29
6 лет назад
Отредактирован nazarpunk
0
Если атакующим дать способность, например - "дыхание холода", то возникает утечка, которая вроде бы исчезает, если удалить атакуемых.
Если исчезает при удалении юнитов, значит "дыхание холода" резервирует хэндлы для работы
Тормозов не заметил причем даже при отключенной функции - "set bj_wantDestroyGroup = true".
Попробуйте часто выбирать всех юнитов на карте и будут вам тормоза с утечками
Код
function Trig_handle_Func002002 takes nothing returns nothing
    call DoNothing()
endfunction

function Trig_handle_Actions takes nothing returns nothing
    call ForGroupBJ( GetUnitsInRectAll(GetPlayableMapRect()), function Trig_handle_Func002002 )
endfunction

function InitTrig_handle takes nothing returns nothing
    set gg_trg_handle = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_handle, 0.01 )
    call TriggerAddAction( gg_trg_handle, function Trig_handle_Actions )
endfunction
3
27
6 лет назад
Отредактирован MpW
3
SNART, утечка в BJ-функции. ты обо всех видимых утечках позаботился. А вот группу не удалил, не обнулил локалки. Это где "Юниты в радиусе в .... " - это группа создается при каждом вызове этой команды, и остается не удаленной, Не обнуляются внутри локалки
NazarPunk, ежесекундно утекает группа GetUnitsInRectAll(GetPlayableMapRect()), так как каждый раз создается новая группа, и будет огромное кол-во срзданных групп, и локалки не обнуляются
хотя никогда не пользовался set bj_wantDestroyGroup = true - надо видеть, где это работает
ссылка
Принятый ответ
0
18
6 лет назад
Отредактирован SNART
0
ссылка
Нет, в jass не разбираюсь...
В общем сойдёт такой вариант,
так, как в нужной карте нагрузка на триггер будет примерно в 100 раз меньше, чем при тесте с 1000 юнитов.
Загруженные файлы
0
29
6 лет назад
0
SNART:
ссылка
Нет, в jass не разбираюсь...
В общем сойдёт такой вариант,
так, как в нужной карте нагрузка на триггер будет примерно в 100 раз меньше, чем при тесте с 1000 юнитов.
Я просто поражаюсь, как вместо того, чтобы понять несколько строчек на JASS люди тратят кучу чужого и своего времени, чтобы сделать криво, но просто.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.