在 JavaScript 中重置数组时,arr.length = 0 比 arr = [] 更好吗?

3

我正在优化一个HTML5游戏的性能,当我重置一些数组时,为了减少垃圾回收,我倾向于使用array.length=0(但我不确定它在实际中是否有效)
我进行了一些测试,以找出这两种重置数组的速度差异
http://tinkerbin.com/hqQvp5fQ


1
你尝试过 http://jsperf.com/ 吗? - Bergi
1个回答

3
是的,将length设为零是更好的解决方案,因为它截断了现有数组,而arr=[]创建了一个新数组并在arr中存储对它的引用。可能会发生旧数组不再被引用并进行垃圾回收的情况。因此,与arr.length=0相比,arr=[]可能需要额外的分配和垃圾回收。

请参阅此文档,了解此解决方案依赖的length特殊行为的说明。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接