Обнаружение утечек памяти в проекте ActionScript-3

Очень интересное использование внутренних - с внутренним участником, конечно, ограничиваемым только блоком, в котором это объявляется - получает "друга" функциональность до некоторой степени из него. Участник друга - что-то, что видимо только к определенным другим блокам за пределами блока в который его заявленное. C# имеет не созданный в поддержке друга, однако CLR делает.

можно использовать InternalsVisibleToAttribute для объявления друга блок и все ссылки из друга, блок будет рассматривать внутренних участников объявления блока как общественность в рамках друга блок. Проблема с этим состоит в том, что все внутренние участники видимы; Вы не можете привередничать.

А хорошее использование для InternalsVisibleTo должно представить различных внутренних участников блоку модульного теста, таким образом избавляющему от необходимости сложную отражательную работу arounds протестировать тех участников. Все внутренние участники, являющиеся видимым, не являются большой частью проблемы, однако проявление этого подхода действительно пачкает Ваши интерфейсы класса довольно в большой степени и может потенциально разрушить инкапсуляцию в рамках блока объявления.

8
задан DexTer 10 August 2009 в 14:38
поделиться

2 ответа

Во-первых, необходимо установить, действительно ли у вас есть утечка памяти. Для этого я бы рекомендовал использовать инструмент статистики производительности, который дает вам обратную связь в реальном времени об использовании памяти.

Один из лучших, которые я использовал, - это Mr. Инструмент Doob's Stats :

Screenshot
(источник: mrdoob.com )

Просто добавьте его на сцену с помощью

addChild( new Stats() );

, и вы сможете наблюдать за использованием памяти в реальном времени. время. Выполните различные действия, чтобы увидеть, что вызывает утечку памяти (когда вы нажимаете эти кнопки, или каждый кадр и т.д.).

6
ответ дан 5 December 2019 в 19:01
поделиться

Предложение по инструменту статистики мистера Дуба хорошее. Кроме того, если вы разрабатываете с помощью flex builder professional, вы можете использовать встроенный профилировщик. (ваш проект не обязательно должен быть гибким, вы также можете разрабатывать чистые проекты as3 и по-прежнему использовать профилировщик)

3
ответ дан 5 December 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: