gpt4 book ai didi

javascript - 随着时间的推移加速的功能

转载 作者:行者123 更新时间:2023-11-30 17:14:35 25 4
gpt4 key购买 nike

我正在对 3 种主要浏览器进行基准测试,看它们使用一段相当简单的代码运行 JavaScript 的速度有多快。我的 JS 是:

<!DOCTYPE html>
<html>

<body>

<h1>JS Test page</h1>

<p>The button below will test the speeed of your browser</p>
<button onClick="testBrowser()">Test browser</button>
<p id="TimeArrayP"></p>
<script>
function testBrowser() {

var timeArray = new Array();

for (i = 0; i < 100; ++i) {

var start = new Date().getTime();

var number1;
var number2;
var number3;
var number4;

var result1;
var result2;
var result3;

var endresult;

for (e = 0; e < 50000; ++e) {

number1 = Math.floor((Math.random() * 100) + 1);
number2 = Math.floor((Math.random() * 100) + 7);

result1 = ((number1 + number2 / number1 * number2) * (number3 + number2) / number1);
result2 = ((number2 + number3 / number1 * number4) * (number3 + number1) / number4);
result3 = ((number3 + number4 / number4 * number2) * (number2 + number3) / number2);

endresult = ((result1 * result2 * result3) / (result1 + result2 * result3) + result1 / result2);

}

var end = new Date().getTime();
var time = end - start;


timeArray[i] = time;

}

timeArray.toString();
document.getElementById("TimeArrayP").innerHTML = timeArray;

}
</script>

</body>

</html>

在 Chrome 和 IE 上,运行时间的开始时间比结束时间长,每次超过第二个时间的运行时间都非常一致,并且低于第一个时间。

但是,Firefox 运行这段代码的时间要长得多(在 Firefox 上大约需要 180 毫秒,而在 IE 和 Chrome 上大约需要 30 毫秒),并且运行时间没有像 IE 和 Chrome 那样减少。

如何解释 Firefox 运行时间长,以及迭代 IE 和 Chrome 所需时间减少的原因?

我使用的是 IE9、Firefox 32.0.1 和 Chrome 37.0.2062.120。

最佳答案

可能与重置调用堆栈和缓存有关。这是一个 interesting talk关于调用堆栈在 javascript 中的工作方式。 link @Jiving 在对你的问题的评论中给出的 SO-answer 也非常有用。

如果你想测量纯计算时间,在 web worker 中运行它可能是可行的。我将您的脚本移至其中,请参阅 this jsFiddle .

此外,替换

for (i = 0; i < 100; ++i) // and
for (e = 0; e < 50000; ++e)

进入

for (var i = 0; i < 100; ++i) //and 
for (var e = 0; e < 50000; ++e)

防止污染全局范围。

关于javascript - 随着时间的推移加速的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357225/

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