如何优化数十万个彼此几乎没有差异的对象的创建?

时间:2013-09-16 02:07:43

标签: design-patterns instantiation creation

在我的应用程序中,我在启动时创建了153600个对象,一个用于屏幕上的每个点(320 * 480 = 153600)。每个对象大致相同,所以我一直在想办法利用这个事实来加速他们的创作。是否有处理此问题的模式或推荐方法?

1 个答案:

答案 0 :(得分:2)

听起来你可能想看一下flyweight模式。如果单独的点共享大量数据,您基本上创建他们共享的数据一次,并在点之间共享,而不是为每个点创建相同的副本:

http://en.wikipedia.org/wiki/Flyweight_pattern

你仍然需要创建~150k点对象,但是你可能只需要创建在它们之间共享的~1k个不同的状态,而点对象本身只是保持对共享状态的引用+只有不能的信息共享。