Пожалуйста, будьте более конкретны - что вы подразумеваете под «памятью»?
Я действительно не специалист по Monster Debugger, но, похоже, у него нет инструментов для решения таких проблем (по крайней мере, нетссылки на веб-сайте, но это one )
Для статистики использования оперативной памяти вы можете использовать отладчик FlashDevelop (бесплатно) столько же, сколько и Flash Builder (вы должны приобрести его, если будете его использовать, но также идоступна долгосрочная пробная версия).
Но ОЗУ - не единственный ресурс.Время ЦП также важно (с моей точки зрения это главная проблема со вспышкой).Flash Builder также позволяет вам профилировать вашу производительность (чтобы профилировать - это получить статистику: какие функции вызываются чаще всего, какие из них занимают большую часть времени для выполнения).Также вы можете добавить некоторый код для сбора статистики - это не так сложно - просто используйте getTimer () и посмотрите разницу до и после некоторого блока кода (но вы должны догадаться, где может быть проблема с производительностью, потому что это не так просто покрытьвы кодируете измерения вручную).
Еще одна мысль, которую следует учитывать, - это размер файла SWF, который влияет на время, необходимое для загрузки приложения, прежде чем что-либо происходит (экран загрузки не учитывается).
Обновление Об removeEventListener.В большинстве случаев вы должны связать каждый addEventListener с соответствующим removeEventListener.Обычно я добавляю слушателей на ADDED_TO_STAGE и удаляю их в REMOVED_FROM_STAGE:
function GameObject() // constructor
{
m_sprite = new MySprite()//...
// use weak listener (last argument) if there is a way m_sprite will never be attached to stage
m_sprite.addEventListener( Event.ADDED_TO_STAGE, OnAttached, false, 0, true );
}
private function OnAttached( e:Event ):void
{
m_sprite.removeEventListener( Event.ADDED_TO_STAGE, OnAttached ) ;
m_sprite.addEventListener( Event.REMOVED_FROM_STAGE, OnDetached );
m_sprite.addEventListener( MouseEvent.ROLL_OVER, OnOver );
m_sprite.addEventListener( MouseEvent.ROLL_OUT, OnOut );
m_sprite.addEventListener( Event.ENTER_FRAME, OnEnterFrame );
}
private function OnDetached(e:Event):void
{
m_sprite.removeEventListener( Event.ENTER_FRAME, OnEnterFrame );
m_sprite.removeEventListener( MouseEvent.ROLL_OUT, OnOut );
m_sprite.removeEventListener( MouseEvent.ROLL_OVER, OnOver );
m_sprite.removeEventListener(Event.REMOVED_FROM_STAGE, OnDetached);
m_sprite.addEventListener( Event.ADDED_TO_STAGE, OnAttached, false, 0, true );
}