2012-11-23 62 views
0

我正在使用OpenglES在Android中开发视频游戏。但是我在主游戏循环或渲染器上遇到问题,因为游戏每3秒(或多或少)滞后,我不知道为什么。我唯一知道的是,无论发生什么事情,它总是会发生。OPENGLES游戏每3秒钟冻结

我有一个主循环,我称之为gameInput,gameLogic和gameRenderer。当我打电话给gameRenderer时,我等到它完成后继续......每秒有20fps。

这发生过任何人吗?或者是否有人知道发生了什么?

回答

1

你使用java吗?它看起来像垃圾收集。尝试禁用部分代码并检查滞后是否消失。您可以本地化发生问题的地方。

另外如果你使用Eclipse插件有DDMS的东西。您可以从那里使用Allocation Tracker来查看创建了哪些对象以及它们的数量。

+0

我试过看ddms,但我不明白一件事。我唯一能看到的就是应用程序使用了为它保留的内存空间的87%......可能有时它会增加,并且是我滞后的时候。不知道。 – Frion3L

2

理论上,如果它是垃圾回收器,你可以像-Xms2G -Xmx2G(堆大小)那样传递VM参数,那么垃圾收集器在VM吃完所有2G之前将不会运行,所以滞后应该消失,你会知道它是垃圾收集器问题。

+0

我不知道如何在日食中做到这一点 – Frion3L