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

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

Ответ
 
NCrashed

offline
Опыт: 13,553
Активность:
EnumDestructablesInRect, утечки.
Код:
native EnumDestructablesInRect takes rect r, boolexpr filter, code actionFunc returns nothing

По моим наблюдениям эта функция создает утечки, кол-во которых ~ числу пикнутых дестров. Я проверял через схему: создал таймер, напечатал номер его ячейки, удалил таймер. В итоге функция забивает ячейки нендлами или реально создает утечки? Если это утечки, как их устранить или смягчить, или есть альтернатива?
Старый 15.02.2009, 01:28
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
NCrashed, эта нативка не вызывает утечек, только если ты: не удаляешь что-либо, создающееся в actionFunc, или не удаляешь рект (если ты сам его создаешь)
Старый 15.02.2009, 04:56
Hellfim
Новичок
offline
Опыт: 79,880
Активность:
NCrashed, удаляй ректы и булэкспры уничтожай, сам недопускай утечек. В этой функции утечек нет.
Старый 15.02.2009, 10:54
NCrashed

offline
Опыт: 13,553
Активность:
Она создает утечки, если остаются переменные, которые хранят хотя бы один из пикнутых дестров. В переменную не сохраняю - нет утечек, сохраняю и пошли по 150 занятых хендлов за пик
Старый 15.02.2009, 14:01
Hellfim
Новичок
offline
Опыт: 79,880
Активность:
NCrashed, ты не думал что из переменной стоит убирать ссылку?
Старый 15.02.2009, 14:16
NCrashed

offline
Опыт: 13,553
Активность:
После использования я ссылку приравниваю к null. Но утечки все равно остаются.
Старый 15.02.2009, 14:46
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
создал таймер, напечатал номер его ячейки, удалил таймер

а тебе в голову не приходило что туда могло что-то другое попать из параллельного потока?

ScorpioT1000 добавил:
хотя я сам неуверен ибо не знаю тамошней фрагментации
Старый 15.02.2009, 14:57
NCrashed

offline
Опыт: 13,553
Активность:
Параллейных потоков нет, так как это наработка, ничего кроме него нет)
Интересное наблюдение: если сохранять не сам дестр, а номер ячейки памяти, вар ожидает 4 секунды перевода номера в хендл, не дождавшись удаляет утечки, потом можно уже переводить номер в дестр. Но я не могу столько ждать, может есть еще способы обмануть движок?
Старый 15.02.2009, 15:24
ScorpioT1000
Работаем
offline
Опыт: отключен
NCrashed, в варкрафте я имею ввиду
Старый 15.02.2009, 15:31
NCrashed

offline
Опыт: 13,553
Активность:
ScorpioT1000, все указывает на эту функцию. Без нее утечек не происходит, и кол-во утечек равно кол-ву пикнутых декораций и как я уже сказал:
Цитата:
ожидает 4 секунды перевода номера в хендл, не дождавшись удаляет утечки
Старый 15.02.2009, 15:37
adic3x

offline
Опыт: 107,539
Активность:
мб код покажешь, ведь не ексрасенсы сидят тут завсегда)
Старый 15.02.2009, 17:09
NCrashed

offline
Опыт: 13,553
Активность:
Собственно карта: нестандартный способ добычи дерева. С 1 лесопилкой удалось справиться с помощью этой хитрости, а вот уже с двумя идут утечки(
Прикрепленные файлы
Тип файла: w3x Dobucha.w3x (47.5 Кбайт, 8 просмотров )
Старый 15.02.2009, 20:36
Ответ

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

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

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

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



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