由于垃圾收集,我的游戏有时会出现打嗝/丢帧。所以我试图通过删除不必要的分配来减少这种情况。
在 Eclipse 中使用分配跟踪器,我看到我的代码如下:
for (IGameObject obj : mObjects) {
//stuff
}
正在分配一个迭代器:
java.util.ArrayList$ArrayListIterator 24 bytes java.util.ArrayList iterator
我可以轻松更改所有发生这种情况的地方,因为 mObjects 是ArrayList
.
只是出于兴趣,proguard 或 jit 会以某种方式将其优化为基本for
循环吗?看起来很遗憾,我必须让我的代码更冗长以避免这种分配。