Как улучшить производительность Flex для невидимых представлений - PullRequest
1 голос
/ 19 марта 2012

У нас есть приложение Flex 3.6 среднего размера, которое содержит около 20 различных просмотров страниц (управляемых с помощью одного ленивого ViewStack), каждое из которых имеет несколько компонентов.Большинство используют пользовательские средства визуализации.

Все данные модели загружаются при запуске, а изменения в экземплярах модели передаются через события связывания и / или изменения коллекции.

После того, как пользователь просмотрел каждую страницу хотя бы один развсе представления страниц создаются и успешно прослушивают события обновления.

Это фактически означает, что каждый раз, когда изменяется экземпляр модели, все заинтересованные представления получают это событие и вычисляют производные данные или запускают средства визуализации элементов.

Я протестировал и подтвердил это поведение в приложении для проверки концепции.Даже когда список устанавливается как невидимый, он все равно прослушивает события изменения коллекции и делает недействительным любого затронутого средства визуализации.

Что бы вы сделали?

1 Ответ

1 голос
/ 20 марта 2012

Наличие единого для ваших представлений - не рекомендуемый способ действий, поскольку он хранит все в памяти, что может быть огромным.Вы должны уничтожить все виды соответствующим образом после их использования.Вы должны быть более бдительными в отношении управления памятью в целом в вашей системе.Кроме того, вам следует «деактивировать» те части вашей системы, которые в данный момент не используются.

Я бы порекомендовал вам удалить из представления все, что в данный момент не требуется, если не подходит «предварительная загрузка» их дляопределенные использования.Вам также следует взглянуть на профилировщик (если он у вас есть), чтобы увидеть, что использует больше всего памяти, и попытаться исправить код, который использует слишком много.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...