我对C#的Javascript很陌生。今天我用JS在几个小提琴上做了一个非常基本的性能测试,看看它的性能如何与C#的性能相匹配。
令我惊讶的是,下面的代码在不同的提琴上以不同的性能运行!
var start = performance.now();
var iterations = 100000000;
for (var i = 0; i < iterations; i++)
{
var j = i * i;
}
var end = performance.now();
var time = end - start;
alert('Execution time: ' + time);
https://jsfiddle.net/sfcu2vo6/4/
https://es6console.com/
在大多数网站上,大约需要3秒,但是在Jsfiddle上,大约需要80毫秒!
秘密是什么?
更新
在下一步中,我在html文件中编写了相同的代码,并自己在chrome中执行。
<html>
<head></head>
<body>
<script>
var start = performance.now();
var iterations = 100000000;
for (var i = 0; i < iterations; i++)
{
var j = i * i;
}
var end = performance.now();
var time = end - start;
alert('Execution time: ' + time);
</script>
</body>
</html>
需要3秒多!说真的,
为什么JsFiddle更快?
更新2
更有趣的是!
我将此代码保存为我的.htm文件,并以不同的名称保存在桌面上!
它现在可以像小提琴一样运行80毫秒!另一个和另一个代码完全相同,运行起来像其他小提琴在3秒左右!我完全糊涂了!有人能试试这个吗?
更新3
可以!我放心了!快速的原因是将代码包装在
window.onload = function() {
. 作为一个初学者,我犯了一个非常初学者的错误!