【发布时间】:2016-07-12 06:08:02
【问题描述】:
就性能和仅性能而言,哪一个更好?
1)
function GameLoop()
{
// Some heavy calculations
requestAnimationFrame(GameLoop);
}
requestAnimationFrame(GameLoop);
2)
function GameLoop()
{
// Some heavy calculations
requestAnimationFrame(function()
{
GameLoop();
});
}
requestAnimationFrame(GameLoop);
【问题讨论】:
-
你测试了吗?你得到了什么样的结果?
-
两者在功能上都相同,但我需要知道这两者在效率方面的不同之处。
-
Rant ;-) 那么,你为什么不测试一下呢?
-
@s952163 因此我已经对其进行了测试,这里有一些有趣的结果:根据 basarat 的回答,第二种方法更好,但正如我测试过的那样,第二种方法似乎更强调垃圾收集第一个。分析第二个会在 chrome 的开发工具中创建锯齿形曲线,但第一个的曲线不那么尖锐。基本上,即使在两种情况下累积的“垃圾”数量保持不变,“垃圾”在第一个中累积也需要更多时间。现在我更困惑了……
-
确实很有趣。我在性能方面的经验是,在许多情况下,瓶颈是非常不直观的,并且测量非常重要。正确测量更是如此。我认为您现在应该能够通过包含您的发现来回答您自己的问题。
标签: performance typescript game-loop