Чем шататься по различным комментариям, решил создать этот топик и прояснить раз и навсегда.
Если создать триггер и зарегать в нем овер 50к событий на получение урона, вц3 занимает порядка 200мбайт памяти(что свидетельствует об относительной ничтожности таких утечек), а затем удалить его - вц3 занимает все те же 200 мбайт. Однако, сохранив игру до и после удаления, а затем загрузить, видим, что память уменьшилась. После уничтожения время сохранения также сильно падает. Упадет ли размер вара со временем если не прибегать к save+load? Короче - есть ли в вц3 нормальный garbage collector и чистит ли он подобные кучи памяти.

наличия триггера на получение урона для каждого юнита
так делать нельзя
это же полный бред
просто добавляем событие к уже существующему триггеру вот и всё
нормального сборщика мусора в варе нет и скорее всего не будет(если близы даже рб поленились убрать то о нормальном gc можно забыть)
так же не стоит забывать что сборщик мусора срабатывает не сразу
если мне не изменяет память то save сохраняет объекты и значения переменных
а при загрузке восстанавливает связи (заносит значения в переменные, регистрирует события и прочее)
так что всякий мусор просто не проходит
а вообще лучше забей на это
в варе есть более серьёзные утечки от которых нельзя избавиться
например руны
+ создание и удаление триггеров вредит намного больше чем пара сотен килобайт памяти
да и вряд ли у тебя за игру будет 50к юнитов
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
43
пес его знает... мне вообще кажется что не все утечки нормально стираются.
32
Кароче что я проверял:
Триггер удаляется полностью с условиями и действиями, боллекспры остаются висеть но они не плодятся как тараканы.
События повешенные на конкретного юнита не удаляются, а остаются висеть в памяти даже если полностью удалить юнита.
Посему юзать периодические триггеры или события работающие на конкретного юнита но имеющие аналоги на всех юнитов игрока стоит только в крайнем случаи (когда иначе никак).
Загруженные файлы
28
событие это 4 байта вроде
50к событий тогда занимают целые 200кб
так что можно особо не волноваться
но вообще если ты удаляешь триггеры значит ты криво написал код
при нормальной архитектуре в этом нету необходимости
20
nvc123:
событие это 4 байта вроде
50к событий тогда занимают целые 200кб
так что можно особо не волноваться
но вообще если ты удаляешь триггеры значит ты криво написал код
при нормальной архитектуре в этом нету необходимости
Идея наличия триггера на получение урона для каждого юнита не нова. Все юниты, которым не нужен специальный триггер, который бы учитывал их особенности, получают свой дефолтный триггер. Такой триггер, потенциально - сплошная утечка ивентов. Поэтому и интересует.
Хотя меня заинтересовал непосредственно факт того что сохраняет вар3 данные без оставшегося в памяти мусора.
Быть может адекватный мусорщик все-таки есть, но используется лишь когда вару не хватает памяти? Все-таки медленная штука.
28
наличия триггера на получение урона для каждого юнита
так делать нельзя
это же полный бред
просто добавляем событие к уже существующему триггеру вот и всё
нормального сборщика мусора в варе нет и скорее всего не будет(если близы даже рб поленились убрать то о нормальном gc можно забыть)
так же не стоит забывать что сборщик мусора срабатывает не сразу
если мне не изменяет память то save сохраняет объекты и значения переменных
а при загрузке восстанавливает связи (заносит значения в переменные, регистрирует события и прочее)
так что всякий мусор просто не проходит
а вообще лучше забей на это
в варе есть более серьёзные утечки от которых нельзя избавиться
например руны
+ создание и удаление триггеров вредит намного больше чем пара сотен килобайт памяти
да и вряд ли у тебя за игру будет 50к юнитов
Принятый ответ
20
Ну я как бы и имел ввиду что к одному триггеру относятся несколько событий, лол. Не спорю, такие цифры не реальны, но вдруг кто-то углублялся в эту тему.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.