4go10_frank
offline
Опыт:
2,089Активность: |
Утечки в Moving System
Вот в карте реализовано движение прожектилов (сильно переделанный Moving System от ViRuS'а, спасибо ему если заглянет сюды =)) сделано на GUI + Custom Script. Проблема, как уже наверно поняли, в утечках (H2I код в карте прилагается). Вроде все возможные точки, спецеффекты, юниты и группы удаляю, но бесполезно (конветировал в Jass, заменял на локалки переменные типа точка - та же фигня) если кто нибудь знает в чем проблема - исправьте пожалуйста.
И еще вопрос в тему: какой адрес памяти (H2I) не должен быть превышен до конца карты? |
14.08.2008, 16:57 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Код:
Создают и теряют позиции - location Вобщем "Position of unit" в качестве аргумента создаёт "точку". Далее эту "точку" никто не удаляет. Всё, она "утекла". Не знаю, насколько "утечлива" работа с группами, но мой тебе совет: Бросай эти GUI триггеры, учись jassу. Язык буржуйский тоже учи - пригодится. Отредактировано Sebra, 14.08.2008 в 19:30. |
14.08.2008, 19:04 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
4go10_frank
offline
Опыт:
2,089Активность: |
Sebra, спасиб за советы :)
джас знаю на уровне локалок + function list, этого достаточно? |
14.08.2008, 21:01 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Да пожалуйста.
Если сумеешь убрать эти утечки, посмотри, будут ли ещё. Я не сильно смотрел. Сдаётся мне, группы тоже будут утекать. Шагай дальше: ifы, loopы, callы. Что понимаешь?
Дальше типы: триггеры, таймеры, регионы, группы, ... Дальше баги (обход и использование), сторонние утилиты (JNGP, оптимизаторы...). И не забывай смотреть, что делают другие. |
14.08.2008, 23:27 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
19,072Активность: |
Не знаю, для чего ты выводишь на экран хэндл таймера (что вообще-то не нужно, ну да ладно), но эту проверку можно организовать и в другом (статичном) триггере(с событием Map Init etc.), не создавая висящий динамический.
Теперь об утечках: Тебе же, кажется, нужна эта система для спеллов? Как я тебе писал в другой теме, движение прожектила нужно организовываать только при необходимости (при касте и т.п), а не постоянно-периодически (у тебя действия выполняются каждые 0,02 сек.). Код при этом сократится до 20-30 строк. Ближе о них же: Цитата:
Не юзай локации - для этого есть координаты. И, наконец, очень близко: BJ - и этим все сказано. |
|
15.08.2008, 10:51 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
не согласен с Sebra, JNGP и оптимизаторы могут и новичкам быть полезны, ведь разметка синтаксиса намного упрощает работу с кодом
|
15.08.2008, 12:13 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Цитата:
И что BJ? Чем он в данный момент мешает? |
|
15.08.2008, 12:23 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
19,072Активность: |
Цитата:
по какому поводу сабж? гуи == бж |
|
15.08.2008, 12:31 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
Цитата:
эээ вообще то это не так. довольно много действий ГУИ имеют под собой native. Притом БЖ не всегда вызывает утечки и др траблы, надо смотреть конкретную функцию |
|
15.08.2008, 12:45 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexkill
offline
Опыт:
19,072Активность: |
agentex, такое впечатление, что ты даже не смотрел систему.
Тем более, что я писал применительно к данному случаю. А за туториал по гуи - спасибо. |
15.08.2008, 12:51 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Цитата:
Система кривовата, но я ожидал более худшего. Что-то 4go10_frank молчит, отключился? |
||
15.08.2008, 18:21 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
4go10_frank
offline
Опыт:
2,089Активность: |
Эт самое, я думал тему уже давно закрыли xD сорри короч господа я перевел GUI2ДЖАС, минут тридцать поизвращался над кодом и в итоге убрал ВСЕ утечки (ну или почти все, адрес памяти увеличится за 10 минут максимум на 500-600 при безостановочном движении снаряда (в оригинальном мовинг систем адрес увеличивался на 600 секунд за 8-9) причем почти без локалок, вот теперь думаю выложить в барахолку, тк возможностей больше, утечек меньше (естесно везде будет указана благодарность ВиРуСу) что скажете? |
15.08.2008, 21:10 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Что-то осталось в обработке столкновений. |
|
15.08.2008, 22:05 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
4go10_frank
offline
Опыт:
2,089Активность: |
Мб но там я тоже подкорректил, вообще я забыл - у меня период стоит 0.02, в оригинальном мовинг систем 0.04 =) честно я офигел что гуи2джас так легко оптимизировать
нащет столкновений: правильно ли делаю - создаю спецэффект и тут же удаляю путем GetLastCreated... ?
Ну вобщем ща состряпую карту с пояснениями и выложу в наработки |
15.08.2008, 22:14 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sebra
offline
Опыт:
5,603Активность: |
Цитата:
Цитата:
Думаю там проблема с утечками в переборе групп. |
||
15.08.2008, 23:34 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|