Интенсивное использование растровых данных - катастрофа памяти (spark / FB4) - PullRequest
2 голосов
/ 12 апреля 2010

У меня есть гибкий компонент, который работает довольно хорошо, но, к сожалению, превращается в катастрофа, однажды использованная в средстве визуализации элементов группы данных из 40-50 элементов.

По сути, он использует битовые данные для создания снимка экрана полностью отображаемой веб-страницы в mx: HTML (эта версия webkit, между прочим, лучше, чем flex 3).

Код довольно понятен, я думаю.

http://noben.org/show/PageGrabber.mxml

Я оптимизировал все, что мог, просматривал, искал ответы и уже обрезал это много, я отчаянно хочу уменьшить использование памяти (около 600 МБ после 100 рисовать)

Сборщик мусора мало влияет.

Спасибо! Nic

Ответы [ 3 ]

2 голосов
/ 13 апреля 2010

Вам нужно позвонить BitmapData.dispose(), когда вы закончите с ними, вы не можете просто выбросить их и надеяться, что они будут собраны. Иногда они будут, но часто нет: '(

2 голосов
/ 12 апреля 2010

будут ли слушатели событий держаться из-за сильной референции? Попробуйте удалить слушателей или использовать слабые ссылки. Посмотрите, поможет ли это

1 голос
/ 13 апреля 2010

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

...