Flex Granite: не может восстановить память - PullRequest
0 голосов
/ 07 февраля 2019

В настоящее время у нас есть приложение пользовательского интерфейса, созданное на базе Adobe Flex (версия 4.15), которая является клиентским приложением, которое извлекает данные с сервера Java J2EE.Данные отправляются с Сервера на Клиент через GraniteDS.

Одной из конкретных функций приложения является одновременное получение больших объемов данных (3000 записей (24 поля)) через GraniteDS (представленных в таблице).), однако после запуска Adobe Scout кажется, что память значительно скачет (например, дополнительные 100 МБ).После того, как мы закроем / уничтожим компонент пользовательского интерфейса, содержащий эту таблицу, объем памяти уменьшится, но только на 10 МБ.Даже явно присваивая нулевые ссылки для очистки ресурсов, это не помогает вернуть память обратно.

После профилирования класс Granite Generated (см. Скриншот ниже) выглядит очень высоким (следовательно, объясняет скачок в 100 МБ).).

Суть в том, что данные через Granite вызывают значительный скачок памяти, но память не падает после удаления компонента таблицы.

Есть ли способизменить свойства / или уменьшить накладные расходы памяти, когда Granite отправляет данные с сервера клиенту?Также все, что может быть настроено в приложении Flex для восстановления памяти (в целом).

Обратите внимание, что мы используем mx.collections, который представляет собой API для хранения и управления коллекциями.

Заранее спасибо

enter image description here

...