gpt4 book ai didi

javascript - 测试js变量声明速度

转载 作者:行者123 更新时间:2023-11-29 22:36:10 25 4
gpt4 key购买 nike

我想对变量声明等非常基本的东西做一些速度测试。

现在我有一个函数可以执行 X 次以获得更显着的时间差。

http://jsfiddle.net/eTbsv/ (你需要打开你的控制台 & 它需要几秒钟的时间来执行)

这是代码:

var doit = 10000000,
i = 0,
i2 = 0;

//testing var with comma
console.time('timer');
function test(){
var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;
};
while (i<=doit){
test();
i++;
};
console.timeEnd('timer');

//testing individual var declarations
console.time('timer2');
function test2(){
var a; var b; var c; var d; var e; var f; var g; var h; var i; var j; var k; var l; var m; var n; var o; var p; var q; var r; var s; var t; var u; var v; var w; var x; var y; var z;
};
while (i2<=doit){
test();
i2++;
};
console.timeEnd('timer2');

现在我有两个问题:

  1. 这是测试变量声明速度的准确方法吗?
  2. 我怎样才能在不让 firefox 崩溃的情况下测试更多的循环?例如,如果我将 doit 设置为 1000000000,firefox 想要停止脚本。
  3. 为什么我的结果(我的脚本和 jspref)每次都如此不同?有时单个变量声明比分组更快:/

编辑 刚刚制作了 JS Pref 测试用例:http://jsperf.com/testing-js-variable-declaration-speed如果你们中一些使用不同浏览器和配置的人可以参与,那就太好了。但我仍然有兴趣知道这种测试方式是否准确。

最佳答案

Is this an accurate way of testing the speed of variable declarations?

粗略的了解已经足够了,但还不够完美。像大多数事情一样,它依赖于 CPU。如果 CPU 在测试期间由于其他应用程序(例如病毒扫描程序)或浏览器的其他操作(例如网络钓鱼检查)而出现峰值,则 JavaScript 的执行速度可能会变慢。即使 CPU 处于空闲状态,这也不是一门精确的科学,您必须多次运行它才能获得良好的平均值。

how could i test more cycles without having firefox to crash? If i set doit to 1000000000 for example, firefox want to stop the script.

Firefox 将 JavaScript 执行限制为最多 10 秒。我不确定是否有解决方法。

why are my results (of my script and in jspref) so different each time? Sometime the individual variable declaration is faster then the grouped :/

因为两者之间可能没有真正的区别。所有变量声明都被“提升”,并且这很可能是在解析时而不是运行时作为优化完成的,因此函数在解析后的内部表示将是相同的。唯一的区别是影响初始化 undefined variable 和执行其他空函数所需时间的细微因素。

关于javascript - 测试js变量声明速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943472/

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