![]() |
System.totalMemory
Недавно начал изучение AS3, возник вот такой вопрос: Как можно отслеживать потребление памяти моей программой ? Я делал вот так:
Компилировал программу в Flash и вызывал печатал свойство System.totalMemory . Также через определенный период я вызывал System.gc() и снова печатал. Так вот, тут возник еще 1 вопрос. System.gc() - Имитирует сборку мусора или что она делает такое? Собственно всё, буду очень благодарен за помощь. |
System.gc() это принудительный вызов сборщика мусора. Т.е. в плеере реализован механизм автоматической сборки мусора который запускается через некоторый промежуток времени. Но этой функцией вы можете запустить сборщик принудительно. (Может ошибаюсь, но вроде работает только в debug player, лень лезть в документацию)
Отслеживание потребления памяти можно реализовать несколькими путями. Например можно воспользоваться профайлерами такими как например в FlashDevelop. Тут есть плюс в том что вы можете посмотреть на какие объекты тратите память и сколько экземпляров вообще создается и т.д. Можно подключить консоль, как например эту. Тут плюсом является то, что можно запустить в рабочей версии, правда функциональность конечно сильно страдает в сравнении с профайлером. Но и плюсов в другой области не меньше. Можно просто посмотреть сколько плеер тратит памяти в диспетчере задач. Тупо, но надежно ;) |
а еще лучше не вынуждать GC "выползать из норы"
|
Вложений: 1
Странно, но Flash и FD выдают значения памяти, которые отличаются на 1.2 мб (4.1 = Flash, FD = 5.3). Или это не та память? Вот картинка из FD. Вложение 29472
|
Вложений: 1
Stats, он показывает занимаемую и выделенную память.
Код AS3:
|
Благодарю.
|
| Часовой пояс GMT +4, время: 09:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.