Читал стать по оптимизации, работаю до сих пор на ГУИ, да такой вот ленивый не перехожу на Джаз, но утечки замучали с вытекающими последствиями. Планирую немного подчистить код, если я правильно я понял то каждое обращение к юниту, например в в цикле " пока не....", запоминается, будет ли эффект чистки памяти, если после выбора юнита, я за ним закрепляю переменную и потом её обнуляю, или само по себе обращение уже проблема?
Или же триггер определяющий при определенных условиях атакующего, если атакующего перед действиями забить в переменную, а потом обнулить, будет ли это фиксом утечки? Или же подобными методами я лишь добавлю переменные, которые просто будут сами себя компенсировать, не влияя на начальные обращения к юнитам?

Alexander69, xgm.guru/p/wc3/optimisations
внимательно прочти то что там написано
особенно про переменные
если коротко то объект не может быть удалён из памяти пока используется (хранится в переменных/хэше/кэше)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
15
Работаешь на GUI - пропиши в шапке #include "ALL.j" . Работаешь на jass- чатай пока не поймешь. Понял- молодец. Еще раз прочитай! Там очень хорошие статьи.
К слову джаз- музыкальное направление. джасс- ЯП
12
NekoriDes, я про обращения, а не переменные, если каждое обращение переводить в переменнну. и обнулять её, после обращения, например: атакующий юнит
переменная=атакующий юнит
переменная =0
EnergyFrost, пробовал, значительная часть тригеров перестала работать, касается особенно обращений к областям, например юнит выходит из области и вернуть его.
20
Alexander69, уточни, может не надо атакующих юнитов оптимизировать, не все функции утечны.
12
Yury13, насколько я понял из статей, любое обращение к юниту - утечка...
13
Alexander69, нет, если ты просто обратился к GetTriggerUnit() - утекать ничего не будет. Но если ты обратился к переменной, которая объявлена, как var = GetTriggerUnit(), то и не обнулил ее в итоге - получаешь утечку.
12
NekoriDes, и это даже в гуи? Если использую "атакованный", "входящий" и подобное, а потом с этим делаю действия?
13
Alexander69, конвертируй в текст то, что делаешь на гуи и смотри, чтобы понять. Разницы там нет, гуи - это интерфейс и не более.
Проще говоря, если у тебя Перменная = Входящий юнит и ты ее не обнулил - это утечка. Если ты просто использовал Входящего юнита, без переменной - утечки не будет.
12
NekoriDes, а считается ли такой переменной например область, к которой обращаешься? Например юнит входит в такую-то область, когда я использовал библтиотеку на оптимизацию ряд триггеров забаглся, особенно те которые были через области, отряды
13
Alexander69, там нет утечки, потому твои области уже были созданы в редакторе.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.