我正在haxe / openfl中构建一个用来制作游戏的库,我注意到精灵运动中的一些混乱,尤其是在运行android或flash设置为调试时,以及在我使用trace(经过)之后代码我注意到每隔几帧就有大量的峰值,我认为这会导致抽搐:
Game.hx:64: 0.030999999999998806
**Game.hx:64: 0.0470000000000006**
Game.hx:64: 0.030999999999998806
Game.hx:64: 0.03100000000000236
Game.hx:64: 0.03200000000000003
**Game.hx:64: 0.045999999999999375**
Game.hx:64: 0.03200000000000003
Game.hx:64: 0.030999999999998806
Game.hx:64: 0.030999999999998806
Game.hx:64: 0.03100000000000236
Game.hx:64: 0.03200000000000003
Game.hx:64: 0.030999999999998806
Game.hx:64: 0.030999999999998806
Game.hx:64: 0.03100000000000236
**Game.hx:64: 0.0470000000000006**
Game.hx:64: 0.03200000000000003
Game.hx:64: 0.030999999999998806
Game.hx:64: 0.030999999999998806
以下是用于确定已用时间的代码:
private function UpdateElapsedTime()
{
var current = Lib.getTimer() / 1000.0;
elapsed = current - lastElapsed;
lastElapsed = current;
}
任何人都可以指出出了什么问题,或者我可以采取哪些措施来改善它, 谢谢, 尼科
答案 0 :(得分:1)
这可能是由垃圾收集器引起的,使用Adobe Scout会帮助你试图理解这个问题。
如果你不想使用Adobe Scout,或者你只想要一点点“基准”,你可以使用https://github.com/mrdoob/Hi-ReS-Stats,这将使用一些内存和FPS图表来帮助你发现垃圾收集器何时“收集”(你会看到内存使用量减少),你可以在不使用跟踪的情况下检测慢速帧。