我正在开发一个图形设计,矢量绘图应用程序,需要在发生更改时在每个帧中呈现数据。问题是,如果用户正在移动节点,则每个帧中都会有变化。这对于少量数据来说不是问题,并且当存在少量数据时,这是一个主要的减速。
原因是为了渲染我预先形成计算并将数据存储在数组中。然后,当负责计算的函数完成时,GC只会丢弃数据,下次调用函数时,我们会创建新数组和新数据。
在C ++中,我可能会在内存中分配空间并写入该空间(一遍又一遍)。我可能会以这种方式提高性能。在我们GC的语言中,我无法以这种方式分配空间。我必须做一个丑陋的黑客,我将数组定义为类成员,然后从函数中反复写入该数组,尽管该数组仅用于该函数,并且不被其他类的方法使用。 / p>
我的问题是,在使用GC的语言中重用内存空间的最佳方法是什么?
答案 0 :(得分:2)
对象池将是主要的,请参见此处: Gotoandplay Tutorial
我还建议您阅读Grant对Flash Player中垃圾收集系统的解释,它非常独特,了解Flash如何处理数据对于数据密集型脚本非常重要。