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

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

Ответ
 
awesomesk1ll
0x003E4946
offline
Опыт: 18,843
Активность:
Нагрузка/утечки и подобное
  1. Имеется карта, в которой есть разные триггеры вроде того что привожу на скрине:
вопрос: нужно ли дестроить такой триггер в случае если не планируется его запуск? и даст ли это выгоду в "производительности" ?
  1. Я ведь правильно понимаю что
local integer t0 = 1232364139
call SetTerrainType(14464.00,-11008,t0,-1,1,1)
работает куда выгоднее чем
call SetTerrainTypeBJ( Location(14464.00,-11008), 'Isnw', -1, 1, 1 ) ??
и еще - такие Location по координатам - они оставляют утечки?
  1. В моей карте около 500 юнитов (на карте стоит), и около 400 областей (которые ректангл)
Думаю около 100 областей используется в качестве "точки" куда нужно кинуть каст юниту (триггерно, с периодичностью кидают)
Есть ли смысл: поудалять области и заменить их на "ордер по координатам" и подобное. Большой ли прирост даст?
Если играть около 3-4ч то потом "выходит" из игры около 20-30 сек. (т.е игра забивает память получается.. Где в первую очередь копать? нужен совет)
В основном всё на GUI сделано.

Отредактировано awesomesk1ll, 07.09.2014 в 10:28.
Старый 07.09.2014, 10:22
Tobi123

offline
Опыт: 7,826
Активность:
Вставьте в карту, и следите за количеством хендлов. Это и есть утечки.
Прикрепленные файлы
Тип файла: w3m HandleBoard.w3m (15.8 Кбайт, 15 просмотров )
Старый 07.09.2014, 10:31
awesomesk1ll
0x003E4946
offline
Опыт: 18,843
Активность:
Tobi123, Это не совсем ответ на мой вопрос, т.к про систему хендлов знал. Не совсем понимаю как найти ей применение в моём случае.
У меня много триггеров - чтоб дёргать все туда сюда и изучать работу каждого по отдельности.
На момент загрузки карты показывает 4000~к хендлов, затем в течении 20-30 сек добавляется 1к (начинается игра и т.д)
Далее понемногу счётчик растёт и растёт.. (получается на периодических триггерах..)
(не зависимо от того играю я или нет, т.е утечка получается находится где-то в периодических триггах)
Мой вопрос скорее о том - что их вызывает в первую очередь (у нубов - коим я являюсь =р).
Вот скрин периодика - думаю что в нём кроютсо утечки в основном.
Ах да, на 1ый вопрос это вообще ни как не ответ.
Старый 07.09.2014, 10:47
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
сам по себе гуи утечен, ибо использует бж функции, где не удаляются объекты.
и зачем столько кастом скрипта? проще уже сразу на жассе писать все
Старый 07.09.2014, 11:24
Tobi123

offline
Опыт: 7,826
Активность:
Если карта - фулл гуи, она будет утечна. Надо переписывать на jass. Или нужно оптимизировать этот гуи, выпиливая бж функции, и делая координаты вместо точек.
Старый 07.09.2014, 11:34
awesomesk1ll
0x003E4946
offline
Опыт: 18,843
Активность:
За 4 часа простоя счётчик хендлов вырос до 35000~ (и так далее).
Какие функции нужно заменить?
как я понимаю тут:
или тут i65.fastpic.ru/big/2014/0907/e4/7d10baefad3953a6f942ba4afaa926e4...
или тут i63.fastpic.ru/big/2014/0907/df/b1bd3e839d5d0b2a59506bc842958fdf...
или тут i67.fastpic.ru/big/2014/0907/d9/0931c8fcb02e26b895f394af0a3b64d9...
Вроде это все присутствующие в карте периодики и утечка(и) кроется среди них.

Отредактировано awesomesk1ll, 07.09.2014 в 15:34.
Старый 07.09.2014, 15:26
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
awesomesk1ll, все что требует или возвращает Loacation (точка), это самое основное что создаёт утечки в гуи...
Старый 07.09.2014, 15:28
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
awesomesk1ll,
гуи функции мультиборда дают до фига утечек
насколько я помню
Старый 07.09.2014, 15:51
ScorpioT1000
Работаем
online
Опыт: отключен
подключи ALL.j anti-leak library и мамка будет довольна
Старый 07.09.2014, 17:28
awesomesk1ll
0x003E4946
offline
Опыт: 18,843
Активность:
ScorpioT1000:
подключи ALL.j anti-leak library и мамка будет довольна
Линк битый (который на этом сайте есть - ALL.j - автоматическое устранение утечек от использования GUI триггеров) и мамка этим крайне недовольна.
упд: Скачал тут www.c-sharks.ru/forum/index.php?topic=213.0
Вот такая проблема О_о:
Плюс гемор с включением выключением флага (её работы)

Отредактировано awesomesk1ll, 07.09.2014 в 19:43.
Старый 07.09.2014, 19:24
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
перепиши лучше мультибоард функции и чекни, мб этого достаточно будет.
Старый 07.09.2014, 20:03
awesomesk1ll
0x003E4946
offline
Опыт: 18,843
Активность:
16GB,
Включением выключением всё же определил что основная утечка от этого триггера (от других нет утечки):
  1. i66.fastpic.ru/big/2014/0907/48/8b2713831f2d738666762794acab1848...
Проблему решил так:
Меню Паузы - Set the text for (Last created multiboard) item in column 2, row 4 to (тут текст)
заменил на
Custom script: call MultiboardSetItemValue(mbi, (тут текст))
В начало триггера добавил:
Custom script: local multiboarditem mbi = MultiboardGetItem(GetLastCreatedMultiboard(), 3, 1)
А в конце:
Custom script: call MultiboardReleaseItem(mbi)
Custom script: set mbi = null
Тем кто искренне пытался помочь спасибо. Надеюсь что мамка ScorpioT1000 будет довольна.

Отредактировано awesomesk1ll, 07.09.2014 в 22:14.
Старый 07.09.2014, 20:15
Ответ

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

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

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

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



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