Чем шататься по различным комментариям, решил создать этот топик и прояснить раз и навсегда.
Если создать триггер и зарегать в нем овер 50к событий на получение урона, вц3 занимает порядка 200мбайт памяти(что свидетельствует об относительной ничтожности таких утечек), а затем удалить его - вц3 занимает все те же 200 мбайт. Однако, сохранив игру до и после удаления, а затем загрузить, видим, что память уменьшилась. После уничтожения время сохранения также сильно падает. Упадет ли размер вара со временем если не прибегать к save+load? Короче - есть ли в вц3 нормальный garbage collector и чистит ли он подобные кучи памяти.
Если создать триггер и зарегать в нем овер 50к событий на получение урона, вц3 занимает порядка 200мбайт памяти(что свидетельствует об относительной ничтожности таких утечек), а затем удалить его - вц3 занимает все те же 200 мбайт. Однако, сохранив игру до и после удаления, а затем загрузить, видим, что память уменьшилась. После уничтожения время сохранения также сильно падает. Упадет ли размер вара со временем если не прибегать к save+load? Короче - есть ли в вц3 нормальный garbage collector и чистит ли он подобные кучи памяти.
Принятый ответ
наличия триггера на получение урона для каждого юнита
так делать нельзя
это же полный бред
просто добавляем событие к уже существующему триггеру вот и всё
нормального сборщика мусора в варе нет и скорее всего не будет(если близы даже рб поленились убрать то о нормальном gc можно забыть)
так же не стоит забывать что сборщик мусора срабатывает не сразу
если мне не изменяет память то save сохраняет объекты и значения переменных
а при загрузке восстанавливает связи (заносит значения в переменные, регистрирует события и прочее)
так что всякий мусор просто не проходит
а вообще лучше забей на это
в варе есть более серьёзные утечки от которых нельзя избавиться
например руны
+ создание и удаление триггеров вредит намного больше чем пара сотен килобайт памяти
да и вряд ли у тебя за игру будет 50к юнитов
это же полный бред
просто добавляем событие к уже существующему триггеру вот и всё
нормального сборщика мусора в варе нет и скорее всего не будет(если близы даже рб поленились убрать то о нормальном gc можно забыть)
так же не стоит забывать что сборщик мусора срабатывает не сразу
если мне не изменяет память то save сохраняет объекты и значения переменных
а при загрузке восстанавливает связи (заносит значения в переменные, регистрирует события и прочее)
так что всякий мусор просто не проходит
а вообще лучше забей на это
в варе есть более серьёзные утечки от которых нельзя избавиться
например руны
+ создание и удаление триггеров вредит намного больше чем пара сотен килобайт памяти
да и вряд ли у тебя за игру будет 50к юнитов
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Триггер удаляется полностью с условиями и действиями, боллекспры остаются висеть но они не плодятся как тараканы.
События повешенные на конкретного юнита не удаляются, а остаются висеть в памяти даже если полностью удалить юнита.
Посему юзать периодические триггеры или события работающие на конкретного юнита но имеющие аналоги на всех юнитов игрока стоит только в крайнем случаи (когда иначе никак).
Отредактирован nvc123
50к событий тогда занимают целые 200кб
так что можно особо не волноваться
но вообще если ты удаляешь триггеры значит ты криво написал код
при нормальной архитектуре в этом нету необходимости
Отредактирован Diaboliko
Быть может адекватный мусорщик все-таки есть, но используется лишь когда вару не хватает памяти? Все-таки медленная штука.
это же полный бред
просто добавляем событие к уже существующему триггеру вот и всё
нормального сборщика мусора в варе нет и скорее всего не будет(если близы даже рб поленились убрать то о нормальном gc можно забыть)
так же не стоит забывать что сборщик мусора срабатывает не сразу
если мне не изменяет память то save сохраняет объекты и значения переменных
а при загрузке восстанавливает связи (заносит значения в переменные, регистрирует события и прочее)
так что всякий мусор просто не проходит
а вообще лучше забей на это
в варе есть более серьёзные утечки от которых нельзя избавиться
например руны
+ создание и удаление триггеров вредит намного больше чем пара сотен килобайт памяти
да и вряд ли у тебя за игру будет 50к юнитов