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

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

Порождать утечку может только объект, чей тип наследует тип handle.
Такие типы как:
  • boolean
  • integer
  • real
  • string
являются базовыми и утечек не порождают. Все остальные типы (unit, group, timer, multiboard и т.д.) являются наследниками типа handle и могут вызывать утечки.
Подробнее тут:
и тут:
Исключением из правил является тип player. Так как игроки существуют на протяжении всей игры, так как они не уничтожаются и не удаляются, являются постоянным объектом существующим на протяжении всей игры, утечек они не порождают.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
17
8 лет назад
Отредактирован GetLocalPlayer
1
Порождать утечку может только объект, чей тип наследует тип handle.
Такие типы как:
  • boolean
  • integer
  • real
  • string
являются базовыми и утечек не порождают. Все остальные типы (unit, group, timer, multiboard и т.д.) являются наследниками типа handle и могут вызывать утечки.
Подробнее тут:
и тут:
Исключением из правил является тип player. Так как игроки существуют на протяжении всей игры, так как они не уничтожаются и не удаляются, являются постоянным объектом существующим на протяжении всей игры, утечек они не порождают.
Принятый ответ
0
15
8 лет назад
Отредактирован EnergyFrost
0
bazeba, все, что не касается редактора триггеров, скрипта и тд и тп не будет вызывать утечек. А если и будет, то нам какая разница? Этого не избежать. Это значит кривота в движке вара. Все что зависит от тебя- оптимизация кода. Ничего более этого ты не в силах сделать. Про оптимизацию кода, как ни один уже раз в подобных вопросах отписывал nvc123: xgm.guru/p/wc3/optimisations Прочитай это и делай по этим правилам. И все будет окей. А если работаешь на гуи - библиотка ALL. Все!
А ну GetLocalPlayer меня опередил. Ну а вообще, по-моему, тебе хватит моего и предыдущего комментария, чтобы разобратся
GetLocalPlayer, но переменную player как и любую другую нужно обнулять, если она локальная
3
17
8 лет назад
Отредактирован GetLocalPlayer
3
GetLocalPlayer, но переменную player как и любую другую нужно обнулять, если она локальная
Не нужно, ни локальную, ни глобальную, вообще никакую. Обнуление необходимо при удалении объекта из игры, Player же существует от начала и до конца игры.
NekoriDes:
Ну он у тебя в глобалке и постоянно висит => ничего очищать не надо, все ок.
К слову, глобальные переменные обнулять тоже нужно, но этим пренебрегают, так как ее содержимое регулярно перезаписывается.
0
17
8 лет назад
0
Такс я окончательно запутался, я не владею триггерами (особенно Джасс, ибо это просто не мое, лучше модельки клепать:D) Мне конечно помогали с триггерами и именно он смог оптимизировать от утечек но он не работает на джасс, а на гуи, В общем скажите что не так с этими 3мя триггерами и мы сами постараемся исправить этот косяк. (От вас нормальной помощи почти не добьшься, вам бы лишь ао статьям за нос поводить, Бомбануло:D)
0
15
8 лет назад
Отредактирован EnergyFrost
0
GetLocalPlayer, в смысле? Под player так же выделяется память (о переменной). А глобальные, если они в постоянном пользовании, зачем обнулять-то?!
0
28
8 лет назад
Отредактирован nvc123
0
EnergyFrost, обнуление переменной не освобождает память под неё а просто заполняет нулями
обнуление используется только в том случае чтобы не было ссылок на удалённый объект (ибо тогда объект останется в памяти)
обнуление имеет смысл если мы собираем удалять объект
игрока ты не удалишь никак
тоже самое и с переменными триггеров/таймеров (за исключением динамических но их не стоит юзать)
в общем всё что будет жить до конца игры обнулять ненужно
0
15
8 лет назад
0
nvc123, хм. Сорь за дезинформацию. Я почему-то был уверен, что player надо обнулить, иначе будет висеть
0
28
8 лет назад
Отредактирован nvc123
0
bazeba, а ты прочти статьи и не задавай вопросов в стиле "работайте вместо меня, рабы, иначе я на вас обижусь"
на первый взгляд в этих 3 триггерах ничего такого нету
мб дебаг чтото и покажет
но я не вижу
0
17
8 лет назад
0
nvc123:
bazeba, а ты прочти статьи и не задавай вопросов в стиле "работайте вместо меня, рабы, иначе я на вас обижусь"
на первый взгляд в этих 3 триггерах ничего такого нету
мб дебаг чтото и покажет
но я не вижу
Рабы, забавно звучит. Ну да ладно. Ладно забыли о проблеме, задам последний вопрос. При каких значениях утечек карта начинает виснуть если использовать детектор утечек. До помощи у меня на 10 сек. с 8 игроками уже было порядком 10000 утечек или даже больше, теперь ну гдето 1500
0
15
8 лет назад
0
bazeba, зависит от мощности компьютера, на котором играют.
0
28
8 лет назад
0
bazeba, зависит от того что это за утечки (точки, юниты или чтото другое) и от количества оперативной памяти(не более 2 гигов)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.