0

我正在使用 OpenglES 在 Android 中开发视频游戏。但是我的主游戏循环或渲染器有问题,因为游戏每 3 秒(或多或少)滞后一次,我不知道为什么。我唯一知道的是它一直在发生,无论游戏中发生了什么。

我有一个主循环,我在其中调用 gameInput、gameLogic 和 gameRenderer。当我调用 gameRenderer 时,我会等到它完成继续......每秒有 20 fps。

这发生在任何人身上吗?或者有人知道发生了什么吗?

4

2 回答 2

2

从理论上讲,如果它是垃圾收集器,您可以将类似 -Xms2G -Xmx2G(堆大小)的东西作为 VM 参数传递,那么在 VM 吃完所有 2G 之前垃圾收集器将不会运行,因此延迟应该会消失,您就会知道这是垃圾收集器问题。

于 2012-11-23T23:26:11.823 回答
1

你用java,对吧?它看起来像垃圾收集。尝试禁用部分代码并检查延迟是否消失。您可以定位问题发生的地方。

另外如果你使用Eclipse 插件有DDMS 的东西。您可以从那里使用分配跟踪器来查看创建了哪些对象以及创建了多少个对象。

于 2012-11-23T18:51:55.750 回答