我们目前有一个基于Adobe Flex(版本4.15)的UI应用程序,它是一个客户端应用程序,可以从Java J2EE服务器检索数据。数据通过GraniteDS从服务器发送到客户端。
应用程序中的一项特殊功能是一次(通过表格显示)一次通过GraniteDS检索大量数据(3000条记录(24个字段)),但是在运行Adobe Scout之后,内存似乎跳了很多(例如额外的100MB)。关闭/销毁保存该表的UI组件后,内存将减少,但只有10MB。即使显式分配空引用来清理资源,这也无助于回收内存。
分析后,Granite Generated类(请参见下面的屏幕截图)看起来非常高(因此解释了100MB的跳转)。
但是,最重要的是,通过Granite的数据导致内存显着跳跃,但是一旦删除表组件,内存就不会丢失。
当Granite将数据从服务器发送到客户端时,是否可以更改属性或减少内存开销?同样,可以在Flex应用程序上进行调整以帮助回收内存的所有内容(通常)。
请注意,我们正在使用mx.collections,这是用于存储和操作集合的API。
预先感谢