2013-08-21 112 views
1

我正在阅读对象回收,即由flixel完成的。我正在阅读的文章是here,以防你对我有兴趣。对象回收是否适合实体组件模型框架

我开始思考如何将类似的系统集成到基于实体组件的框架中,EntityEngine。我不确定它是否合理,以flixel的方式整合它对帧速率,CPU/RAM使用率等没有任何影响。我很确定这与事实有关每个EntityHashSet<Component>

flixel处理对象回收的方式是,每个对象都有一组定义的字段,实体没有设计的东西。当一个对象被“销毁”时,它不会从基本数组中移除,而是保持并切换到让框架知道该对象可以被覆盖并且不应该再被更新和绘制。不过,我很确定这里继承的集合是个问题。

所以问题是,我可以使用对象回收来提高帧率/ CPU使用率,或者我是否运气不好?

编辑:我使用.net 4与XNA 4刷新。

+0

你在什么框架?普通或XNA? –

+0

@亨克XNA,我觉得没关系,但回头我应该提到它,我会编辑问题以反映信息。 – redcodefinal

+0

它很重要。 XNA与regarsds与记忆非常不同。 –

回答

0

如果垃圾收集器出现问题,回收实体/组件只会影响帧率/ CPU使用率。

当垃圾收集器回忆未引用的对象会导致帧率下降时,这就是保持池中引用的对象并重用它们的原因,从而避免垃圾收集器过于频繁地启动并且工作量较少。