gpt4 book ai didi

Javascript foreach 循环性能

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:21 25 4
gpt4 key购买 nike

我正在考虑改进我们的一些 for each 循环,并创建了一个测试基准来比较我们使用它们的不同方式。测试可以found here .

我惊讶地发现这段代码:

function add(val) {
sum += val;
}
values.forEach(add);

比这个表现更好。

 values.forEach(function(val) {
sum += val;
});

这些不完全一样吗?是什么让第一个代码片段比第二个更快?

最佳答案

你的测试有问题。您的测试是:

values.forEach(add);

values.forEach(function(val) {
sum += val;
});

在第二个测试中,您要为函数的创建和 forEach 的执行计时。在第一个测试中,您没有为函数的创建计时;这是在测试的设置阶段完成的,不定时。

Davin Tryon已创建 a test that creates the functions in both cases :

function add(val) {
sum += val;
}
values.forEach(add);

对比

values.forEach(function(val) {
sum += val;
});

...其中性能差异在某些引擎上消失,而在某些引擎上则相反(声明速度较慢)。 (后者可能是引擎在测试期间发现它可以内联函数,或者至少跳过一些它不能通过声明跳过的步骤。)

enter image description here

关于Javascript foreach 循环性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28085021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com