iOS 8中的SpriteKit:我应该缓存我的SKNodes吗?

时间:2014-11-07 00:04:24

标签: swift sprite-kit

我正在编写一个可以绘制条形图的iOS 8.1应用程序。用户将能够过滤绘制图表的数据集,动态更改图表。

每个图表将由大约2,000个SKNode(简单框)组成。每次选择更改时,将丢弃先前使用的SKNode,并计算一个全新的集合。

我估计,每次使用该应用程序时,用户不会重新计算图表超过20次。

我想知道回收以前使用过的SKNode是否有意义,以避免分配,释放和内存碎片的成本,以及它们对感知性能的影响,或者,如果“只有”40,000个SKNode它将会结束使软件复杂化。

如果缓存有意义,那么作为缓存的高效Swift数据结构是什么?

1 个答案:

答案 0 :(得分:2)

在出现可衡量的性能问题之前,应避免构建缓存。如果你有一个,那就制作一个缓存。

如果你必须构建一个,我会将未使用的节点存储在NSCache实例中,以便可以在内存压力下清除它们。您可以按照UITableView / UICollectionView模式 - 将节点出列,准备重用,进行设置,然后再使用它。