1

我正在开发一个图形设计、矢量绘图应用程序,当有变化时,它需要在每一帧中渲染数据。问题是,如果用户正在移动节点,那么每一帧都会发生变化。这不是少量数据的问题,而是当数据量超过少量数据时会严重减速。

原因是为了渲染,我执行计算并将数据存储在数组中。然后当负责计算的函数完成时,GC 会简单地丢弃数据,下次调用该函数时,我们会创建新数组和新数据。

在 C++ 中,我可能会在内存中分配空间并写入该空间(一遍又一遍)。我可能会以这种方式提高性能。在我们 GC 的语言中,我不能那样分配空间。我必须做一个丑陋的 hack,我将一个数组定义为一个类成员,然后一遍又一遍地从函数写入该数组,尽管该数组仅用于该一个函数并且不被该类的其他方法使用。

我的问题是,在使用 GC 的语言中重用内存空间的最佳方法是什么?

4

1 回答 1

2

对象池将是主要的,请参见此处: Gotoandplay 教程

还有 关于 GC 的 10 个重要提示

我还建议您阅读 Grant 对 Flash Player 中的垃圾收集系统的解释,它非常独特,了解 Flash 如何处理数据对于数据密集型脚本非常重要。

本次演讲

于 2013-02-06T11:35:49.637 回答