XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
ExArt

offline
Опыт: 13,734
Активность:
Обнаружение утечек
Есть ли какой нибудь способ, кроме просматривания кода натренерованным взглядом, для обнаружения утечек на ранней стадии разработки карты? А то хочется сразу найти свои ошибки и их больше не допускать, что бы потом не переписывать всё. Пока кода мало естественно тормозов нет, а надо определить всё ли подчищается.
Старый 04.02.2009, 22:27
S

offline
Опыт: 43,833
Активность:
  1. Попросить джассера посмотреть код на предмет утечек
  2. Самому стать джассером, смотреть код на предмет утечек
как вариант - писать сразу на jass'e, тк в гуи используется bj функции которые чаще всего вызывают утечки
обнулять переменные с юнитами, декорациями и.т.п
Старый 04.02.2009, 22:29
Hellfim
Новичок
offline
Опыт: 79,901
Активность:
ExArt, обнулять объекты типа handle. Смотреть на использование BJ функций. В них часто бывают утечки.
Старый 04.02.2009, 22:29
ExArt

offline
Опыт: 13,734
Активность:
Ну я же написал
Цитата:
кроме просматривания кода натренерованным взглядом


ExArt добавил:
Hellfim да и собственно как определить в каких BJ функциях есть утечки, а в каких нет? У меня нет цели избавится от всех утечек и сделать абсолютно чистый код. Я хочу лишь добиться нужного мне уровня чистоты. Собственно как отследить много утекает или нет?
Старый 04.02.2009, 22:37
RazArt

offline
Опыт: 11,197
Активность:
Вот тебе функции из blizzard.j и common.j, открываешь blizzard.j, находишь там свою функцию и смотришь её код, если там находишь утечки, то пишешь свою такую функцию, использую нативки из common.j
Прикрепленные файлы
Тип файла: 7z j.7z (63.9 Кбайт, 27 просмотров )
Старый 04.02.2009, 22:55
Hellfim
Новичок
offline
Опыт: 79,901
Активность:
ExArt, ну допустим у тебя периодический триггер с периодом 0.01. И если не ремувить точку которую возвращают полярки(допустим ты их юзаешь), то комп встанет через 2-5 минут. Как очищать утечки я уже написал, ремувай объекты класса handle и ссылки на них. Так же обнуляй локальные переменные.
Старый 04.02.2009, 22:58
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
С NewGen это еще легче — Ctrl+Click на функции показывает её внутренности.
Старый 04.02.2009, 22:58
HappyAndRu
RPA Arena - Forever!
offline
Опыт: 5,724
Активность:
Код:
function H2I takes handle h returns integer
    return h
    return 0
endfunction

function Trig_check_Actions takes nothing returns nothing
    local timer Timer = CreateTimer()
    call DisplayTextToForce(GetPlayersAll(), I2S(H2I(Timer)))
    call DestroyTimer(Timer)
    set Timer = null
endfunction

function InitTrig_check takes nothing returns nothing
    local trigger trig = CreateTrigger()
    call TriggerRegisterTimerEventPeriodic(trig, 0.5)
    call TriggerAddAction(trig, function Trig_check_Actions)
    set trig = null
endfunction

Этот скрипт выявит утечки.

Отредактировано alexkill, 08.02.2009 в 11:38.
Старый 04.02.2009, 23:25
Hellfim
Новичок
offline
Опыт: 79,901
Активность:
HappyAndRu2, но он не особо поможет найти где именно они...
Старый 04.02.2009, 23:27
ExArt

offline
Опыт: 13,734
Активность:
HappyAndRu2 Спасибо, то что нужно.

Hellfim мне не надо где именно, где именно я сам найду.

Vampirrr цыферки не просто так скачут) а увеличиваются в определённые моменты)
Старый 04.02.2009, 23:42
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
Вот вопрос, а как конкретно определять утечки по этому скрипту? У меня каждые 0.5 сек по неск. раз повторяется одно и тоже число... вроде ничего не лагает.
В идеале не должно быть надписей или их не должно быть много? Или? Обьясните и просвятите!=) Буду благодарен
Старый 04.02.2009, 23:52
Hellfim
Новичок
offline
Опыт: 79,901
Активность:
Ranger21, в идеале число не должно расти, или же расти ненамного.
Старый 04.02.2009, 23:53
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
Мда уж... у меня растёт за 4 минуты игры на 1000 где-то =)... попробую что-нибудь пооптимизировать
Хотя у меня сурвивал...массовые действия :D: , трудно избежать утечек
Старый 05.02.2009, 00:00
Hellfim
Новичок
offline
Опыт: 79,901
Активность:
Ranger21, какая разница какая карта? Вполне нормально удалять утечки сразу а не потом искать по всему коду. В базе кстати статья есть насколько помню, про устранение утечек.
Старый 05.02.2009, 00:05
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
Hellfim Да просто у меня гуи много.... поэтому утечки неизбежны для меня, но совсем примитивные с точками я уже знаю как удалять. А бжки заменять не умею ещё
Старый 05.02.2009, 00:13
Hellfim
Новичок
offline
Опыт: 79,901
Активность:
Ranger21, бжки можно заменять только на жасе, так что пока не заморачивайся. Хотя призадуматься о переходе на жасс определенно стоит =)
Старый 05.02.2009, 00:20
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 13:28.