我一直在为Android开发游戏,并在N1上对其进行调试。刚开始时,表现有些零散。然后,我致力于清理所有分配以防止垃圾收集。这大大改善了性能,但是我仍然看到发生了一些垃圾回收,这些垃圾回收导致动画中的短暂暂停。

抽出一会儿后,然后我注意到正在执行垃圾回收的进程ID(GC_FOR_MALLOC)不是我的进程ID。进程ID属于“Android系统”和android.process.acore(通过使用市场上的“Android系统信息”应用确定)。 Acore进程与一个称为数字时钟的桌面小部件有关。我卸载了该小部件,几乎在整个游戏中都没有任何停顿。对于“Android系统”,GC有一个非常短暂的暂停。

很抱歉,冗长的解释,但现在我的问题是:

  • 如何避免其他游戏由于系统进程的GC(在开发者无法控制的情况下)而偶尔出现暂停?
  • 按照第一个问题,我该如何处理另一个导致GC减慢进程并导致游戏打h的应用程序?

  • 我只是觉得我缺少一些东西,因为其他游戏都没有这个问题。

    谢谢

    最佳答案

    您可以降低游戏的帧频吗?也许它正在使用100%的CPU,所以消耗CPU的其他任何东西都会使其滞后。这些设备的速度几乎不及您的普通PC。您还可以考虑减少创建每个帧所需的CPU,以保持足够高的帧速率以使其平滑。

    10-07 20:25