1

我正在阅读由flixel完成的对象回收。我正在阅读的文章在这里,以防你和我一样感兴趣。

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

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

所以问题是,我可以使用对象回收来提高帧率/cpu 使用率,还是我不走运?

编辑:我正在使用带有 XNA 4 刷新的 .Net 4。

4

1 回答 1

0

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

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

于 2013-08-22T07:28:25.053 回答