Ребята кто может подсказать что такое Handle Counter я скопировал из одной тест карты библиотеку который показывает это в начале она показывала число 425 потом после того как я использовал способности героев( 11 спелов ) прибавилось около 150+ что это ? Утечки? Баги?

Гуванч, ух, сорян, я думал почему некоторые скиллы не работают как я себе представлял, а это уже твои личные недочёты, например автоатаки со светом, там ты сохраняешь в первую ячейку юнита булевую переменную и целочисленную, сам поправишь в общем. Утечки хз есть или нет, я не ждал 5 минут, подозреваю что спецэффекты только долго удаляются. Впрочем их стало намного меньше и можно даже не беспокоиться. Если я где-то там накосячил, что работает не так, как ты задумывал - поправишь. В чужом коде тяжело ориентироваться, но я старался)
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
Счётчик хэндлов не точен, но если спустя 5 минут 150+ осталось, значит что-то утекает
14
rsfghd:
Счётчик хэндлов не точен, но если спустя 5 минут 150+ осталось, значит что-то утекает
Кстать я помоему из твоей карту скопировал библиотеку карта помоему про движение снаряда

rsfghd:
Счётчик хэндлов не точен, но если спустя 5 минут 150+ осталось, значит что-то утекает
Можно ли проверить утечки еще как нить?

rsfghd:
Счётчик хэндлов не точен, но если спустя 5 минут 150+ осталось, значит что-то утекает
Попробую скинуть тебе карту посмотришь что за мачилово творится с этой штукой когда юзаешь спелл
28
Гуванч, через диспетчер задач можно посмотреть нагрузку Вара, чтобы узнать есть ли утечки. Скидывай конечно, посмотрю)
28
Ерунда это. Помогает только если в карте прямо совсем всё плохо. Пара не удалённых объектов в карте ничего не сделают.
Лучший показатель утечек - лаги карты. Если карта спустя 20-30 минут начинает лагать, есть утечки. А всякие каунтеры лишь вводят в заблуждение. Люди думают, что раз каунтер увеличился, то есть утечки. Хотя на самом деле увеличение произошло из-за создания нужных объектов.
14
PT153:
Ерунда это. Помогает только если в карте прямо совсем всё плохо. Пара не удалённых объектов в карте ничего не сделают.
Лучший показатель утечек - лаги карты. Если карта спустя 20-30 минут начинает лагать, есть утечки. А всякие каунтеры лишь вводят в заблуждение. Люди думают, что раз каунтер увеличился, то есть утечки. Хотя на самом деле увеличение произошло из-за создания нужных объектов.
Тоесть локальные переменные тоже учитываются?
8
Правильный и в достаточной степени точный счетчик может серьезно помочь не допускать лишних утечек. В конце концов, если у вас после одного срабатывания спела или триггера внезапно возникло 50 групп и 150 локейшнов, есть подозрения, что у вас где-то таки течет и через эти 30 минут лаги у вас появяться.
В конечном итоге, после кажного изменения в коде ждать по пол часа и делать какие-то правильные действия, в надежде, что лаги не появятся - не самый продуктивный путь. Кроме того, так проще определить причину утечек.
28
PT153, создание нужных объектов происходит обычно разово, при инициализации, а не при каждом касте скилла, и лучше уж всё таки не испытывать вар и обнулять утечки, дело 5 секунд

Локальные переменные тоже нужно обнулять
14
goodlyhero:
Правильный и в достаточной степени точный счетчик может серьезно помочь не допускать лишних утечек. В конце концов, если у вас после одного срабатывания спела или триггера внезапно возникло 50 групп и 150 локейшнов, есть подозрения, что у вас где-то таки течет и через эти 30 минут лаги у вас появяться.
В конечном итоге, после кажного изменения в коде ждать по пол часа и делать какие-то правильные действия, в надежде, что лаги не появятся - не самый продуктивный путь. Кроме того, так проще определить причину утечек.
Да нее я использую только точки да и для каждого спела макс. 2 группы делаю если канеш это надо (имею ввиду спелы типа волны силы) и к тому же я все очищаю хеш таблицу и переменные
18
Лучший показатель утечек - лаги карты. Если карта спустя 20-30 минут начинает лагать, есть утечки
"Лучший" показатель, а потом переписывать всю архитектуру
Люди думают, что раз каунтер увеличился, то есть утечки. Хотя на самом деле увеличение произошло из-за создания нужных объектов.
Да, так тоже может быть
28
Гуванч, если смотреть карту из прошлого вопроса по статам, то у тебя есть именно утечки, а не что-то там полезное инициализируется, впрочем я заметил некоторые замечания, которые хотелось бы обговорить лично, я имею ввиду мелкие фишки вроде ненадобности удалять москитов после их смерти если они не разлагаются и сами удаляются из игры (а так же красиво, когда анимация смерти полностью проигрывается, а не снаряд исчезает куда-то), "if SpellR == true then", можно без "== true" писать, использовать глобальную группу TempGroup вместо того, чтобы каждый раз локальную создавать ну и отступы, чел, я пол часа рассматривал код тупо чтобы вникнуть в него, но начал находить проблемы только когда отступы начал расставлять)
Чтобы сохранить переменную в хэш-таблицу не обязательно её объявлять, можно сразу в функции сохранения вписать например call SaveGroupHandle(Hashtable,GetHandleId(Timer),3,CreateGroup()), IsTerrainPathable заменить на проверку проходимости предметом. В ешке Эстерии ты создаёшь группу каждый раз во время полёта, но уничтожаешь её только по завершении её прыжка

В общем счётчик хэндлов всё верно показывает, есть проблемы
14
rsfghd:
Гуванч, если смотреть карту из прошлого вопроса по статам, то у тебя есть именно утечки, а не что-то там полезное инициализируется, впрочем я заметил некоторые замечания, которые хотелось бы обговорить лично, я имею ввиду мелкие фишки вроде ненадобности удалять москитов после их смерти если они не разлагаются и сами удаляются из игры (а так же красиво, когда анимация смерти полностью проигрывается, а не снаряд исчезает куда-то), "if SpellR == true then", можно без "== true" писать, использовать глобальную группу TempGroup вместо того, чтобы каждый раз локальную создавать ну и отступы, чел, я пол часа рассматривал код тупо чтобы вникнуть в него, но начал находить проблемы только когда отступы начал расставлять)
Чтобы сохранить переменную в хэш-таблицу не обязательно её объявлять, можно сразу в функции сохранения вписать например call SaveGroupHandle(Hashtable,GetHandleId(Timer),3,CreateGroup()), IsTerrainPathable заменить на проверку проходимости предметом. В ешке Эстерии ты создаёшь группу каждый раз во время полёта, но уничтожаешь её только по завершении её прыжка

В общем счётчик хэндлов всё верно показывает, есть проблемы
Оу щет не знал, спасибо что подсказал, но я пока что только пробую использовать джасс я только месяц назад начал писать на джассе до этого я был тупым гуишником который массовый молот бурь делает для короля гор)

rsfghd:
Гуванч, если смотреть карту из прошлого вопроса по статам, то у тебя есть именно утечки, а не что-то там полезное инициализируется, впрочем я заметил некоторые замечания, которые хотелось бы обговорить лично, я имею ввиду мелкие фишки вроде ненадобности удалять москитов после их смерти если они не разлагаются и сами удаляются из игры (а так же красиво, когда анимация смерти полностью проигрывается, а не снаряд исчезает куда-то), "if SpellR == true then", можно без "== true" писать, использовать глобальную группу TempGroup вместо того, чтобы каждый раз локальную создавать ну и отступы, чел, я пол часа рассматривал код тупо чтобы вникнуть в него, но начал находить проблемы только когда отступы начал расставлять)
Чтобы сохранить переменную в хэш-таблицу не обязательно её объявлять, можно сразу в функции сохранения вписать например call SaveGroupHandle(Hashtable,GetHandleId(Timer),3,CreateGroup()), IsTerrainPathable заменить на проверку проходимости предметом. В ешке Эстерии ты создаёшь группу каждый раз во время полёта, но уничтожаешь её только по завершении её прыжка

В общем счётчик хэндлов всё верно показывает, есть проблемы
Друг сможешь прописать комменты там где я накосячил и скинуть мне карту?
28
Друг сможешь прописать комменты там где я накосячил и скинуть мне карту?
к, посмотрим что там
14
rsfghd:
Друг сможешь прописать комменты там где я накосячил и скинуть мне карту?
к, посмотрим что там
Сколько ждать?)
8
Я бегло глянул - в тексттэгах используется GetUnitLoc, но локешн, который при этом создается никуда не убивается.
call CreateTextTagLocBJ((Damage),PolarProjectionBJ(GetUnitLoc(GetTriggerUnit()),48.00,90.00),0,12.00,GetRandomReal(25.00,100.00),GetRandomReal(25.00,100.00),GetRandomReal(25.00,100.00),0.00)
28
ы, даже на скрине видно, что ты ошибся, у тебя в мане устанавливается жизнь (CurLife), а не мана (CurMana) )

goodlyhero, я уже говорил об этом)
8
И PolarProjection - тоже создает и не удаляет локешн
28
Сколько ждать?)
через час примерно скину карту
28
создание нужных объектов происходит обычно разово, при инициализации, а не при каждом касте скилла
Это не так.
Vlod:
"Лучший" показатель, а потом переписывать всю архитектуру
Да, это лучший показатель. Если лагов нет, то утечки несущественны, вот и всё. И переписывать архитектуру не придётся, а лишь исправить пару мест, где забыто удаление.
goodlyhero:
Правильный и в достаточной степени точный счетчик может серьезно помочь не допускать лишних утечек.
Таких нет. Кроме того, сам каунтер нагружает карту, ибо создаёт и удаляет кучу точек несколько раз в секунду.

Просто любому человеку, которому говорят про код, сразу тыкают про утечки, вместо того чтобы рассказать, как карту сделать интересной. Ну и человек по этому поводу рефлексует, смотрит, что утечек много, и расстраивается, что всё переделывать нужно. А на самом деле карта может быть интересной, хоть и с проблемами. Поэтому на первое место нужно ставить сам геймдизайн, а потом оптимизацию. Если карта интересна, то нет проблемы потратить время на оптимизацию и исправление ошибок.
8
PT153:
Я помню я пытался сделать что-то более продуктивное, получилось что-то, не то, чтобы это давало ответы на все вопросы, но на какие-то - да.
Конечно, для меня в те времена (да и сейчас) было загадкой, что это за числа, но какие-то продуктивные результаты таким образом получить удавалось.
Загруженные файлы
14
что
goodlyhero:
PT153:
Я помню я пытался сделать что-то более продуктивное, получилось что-то, не то, чтобы это давало ответы на все вопросы, но на какие-то - да.
Конечно, для меня в те времена (да и сейчас) было загадкой, что это за числа, но какие-то продуктивные результаты таким образом получить удавалось.
rsfghd:
Сколько ждать?)
через час примерно скину карту
Посидел часок у редактора теперь хендл еле как достигает до 440 раньше если использовал скилы то хендл доходил до 1300+ а теперь нет, так обрадовался когда счетчик сбавил обороты, везде поставил локации и удалил теперь все супер, ура!

За несколько дней узнал больше чем за месяц)))

Когда ковырял код нашел оч много утечек раньше думал что делаю все без утечек потому что делаю на джассе а получилось что делал хуже чем на гуи
14
rsfghd:
Гуванч, 2 триггера осталось, через 10 мин скину
Спасибо огромное тебе добрый ты человек
Чтобы оставить комментарий, пожалуйста, войдите на сайт.