![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
у меня в игре происходит очень интенсивная работа с памятью.
создаются сотни объектов - юнитов, выделяется в них память под массивы, объекты удаляются, списки очищаются. Требуется контроллировать утечки памяти. В С++ движке у меня свой манагер памяти который следит за выделением памяти и сигнализирует если вдруг чего не освободил. какие механизмы в АС3 гарантируют освобождение выделенной памяти? как проконтролировать что память освободилась? имеется ли возможность заметить "родной" менеджер памяти на свой? ибо чую что грустно все может получиться если не контроллировать память.
__________________
fast restart: *((int*)0) = 0; |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Механизмов по управлению памятью в AS3 нет. Есть GC, он работает автоматически. Но для того, чтобы он сработал, необходимо соблюдать правил «намусорил — убери».
|
|
|||||
|
Цитата:
ок. есть объект: удалаю: var m_unit: Unit = m_unitlist[i]; m_unitlist[i] = m_unitlist[ m_unitlist.length - 1 ]; m_unitlist.pop();// - удалил из массива iй элемент m_unit.destroy(); //вызываю деструктор delete( m_unit ); m_unit = null; удалится ли сама вся память под объекты в Unit выделенная через new или для каждого объекта вызвать delete надо? ну и как нибудь можно подсмотреть у GC что в памяти осталось и что не убрано?
__________________
fast restart: *((int*)0) = 0; Последний раз редактировалось progman; 19.09.2009 в 12:08. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Удалится (только я не понял шаманства с индексами в массиве, m_unitlist.splice(i, 1) достаточно). delete — только для динамических свойств.
И да, в Flex Builder есть профайлер. |
|
|||||
|
Цитата:
с точки зрения расположения массива в памяти быстрее и дешевле стереть последний элемент нежели из середины ибо удаление элемента из середины приводит к большой memcpy что не есть гуд. можешь ссылку кинуть чтобы поподробнее с сабжем познакомиться?
__________________
fast restart: *((int*)0) = 0; |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
С кем, с Flex Builder? http://adobe.com/products/flex/
|
|
|||||
|
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Что смущает?
|
|
|||||
|
В AS3 - массивы не настоящие массивы. Нужно тестировать, дает ли это выигрыш в производительности или надоборот
. |
|
|||||
|
Цитата:
Добавлено через 1 минуту Цитата:
более того у меня вообще от флеша нет ничего. только один мувиклип 640х480 который я юзаю как поверхность для отрисовки моего контента. и все объекты внутри игровые либо статикой либо в массивах.
__________________
fast restart: *((int*)0) = 0; Последний раз редактировалось progman; 19.09.2009 в 13:34. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|