编辑2.添加了logcat的截图。如果我将精灵的数量减少到1,我仍然会间歇性地“停止/启动” - 所以我不认为这是我的代码,因为1精灵我的帧速率徘徊在85-90 fps左右。我猜这是手机上的东西,logcat记录了很多东西,所以我假设在后台运行很多东西。在运行时,有没有办法让我的应用程序优先于其他服务?
修改1.请参阅问题末尾的修改详情
我创建了一个精灵测试,在其中渲染aprox 290精灵。
每秒有1个精灵的帧大约是80,而288它仍然是大约30,问题是精灵停止并且时不时地启动,这显然不是帧率,所以有人知道是什么可能是造成这种情况? (只是要明确它不会减速,而是平稳运动一段时间,然后一切都停止了几分之一秒,然后又恢复平稳)。
这也发生在屏幕上的一个精灵 - 但只是间歇性地,每5秒左右 - 我添加的精灵越多,它发生的越多,但帧速率永远不会低于30 fps,(我理解应该可以顺利运动),所以我只是想了解这可能是什么。
我的精灵是由自定义类创建的,但是只创建了3个实际对象(背景,在屏幕上移动的精灵(因此我可以测量平滑度),然后是288个精灵(实际上是同一个对象)重复使用),分批渲染。
感谢您的帮助。
硬件是三星Galaxy Ace手机。
编辑好的,所以我通过批处理程序改变了,现在我每次调用渲染24个精灵(14个调用= 336个四元组+移动精灵+背景= 338个四元组)并且大约需要47 FPS ,所以我想知道什么可能导致这种“生涩”的运动与GC或帧速率下降太远?
答案 0 :(得分:0)
听起来像垃圾收集器正在运行。要验证这一点,只需看一下logcat ...这个生涩的时刻与标记为“dalvikvm”的行相关并且带有“GC _”的行吗?