【发布时间】:2019-06-20 12:52:49
【问题描述】:
我正在尝试了解 Javascript 的工作原理。分析一些代码,我发现以“类型化”为导向的声明比非“类型化”的声明慢。当然,我知道 JS 不是类型化语言。
我在 Firefox、Chrome 和 Opera 上对此进行了测试,结果始终相同。
var repetitions = 10000000;
console.time("a");
for (var i=0; i<repetitions; i++) {
var a = "...";
}
console.timeEnd("a");
console.time("b");
for (var i=0; i<repetitions; i++) {
var b = new String("...");
}
console.timeEnd("b")
【问题讨论】:
-
这取决于底层引擎实现,每个浏览器/平台可能不同。你试过什么平台?您是否将其与其他平台进行了比较?你能说这种现象普遍存在吗?
-
toSource被标记为非标准。即使它显示了您所说的内容,也没有理由相信解析器正在为两者执行相同的步骤。使用new比分配文字有更多的开销。但是,不能保证在某些实现上会更快/更慢。我看不出详细讨论这个问题的好处。 -
我在 Firefox、Chrome 和 Opera 上对此进行了测试,结果始终相同。
标签: javascript profiling