[问题] 为什么node比chrome快?

楼主: illl (ill!)   2016-11-12 15:20:04
{
console.time("loop");
for (var i = 0; i < 1000000; i += 1){
// Do nothing
}
console.timeEnd("loop");
}
在网络上看到 ( https://www.toptal.com/nodejs/interview-questions )
说上面这段code
node的执行速度会比chrome浏览器快
虽然都是用v8引擎
原因是
因为i是global,会被绑在window object上
然后会
repeatedly resolving the property i within the heavily populated
window namespace in each iteration of the for loop.
上面这句英文理解不能
可以请大大开释一下吗?
感谢
作者: LPH66 (-6.2598534e+18f)   2016-11-12 16:09:00
浏览器的全域变量都是属于 window 这个物件而 window 底下有超多东西, 在里面找人找一百万次很慢但 node 的全域变量属于 global 这物件里面东西没有浏览器的 window 那么多, 所以比较快再者 node 直接宣告 var 宣告的是 module-local 变量只属于这个 module 所以又更没有负担
作者: eight0 (欸XD)   2016-11-12 16:30:00
有学到有推 试了一下,全域执行所需的时间是IFFE的4倍以上
楼主: illl (ill!)   2016-11-12 16:41:00
喔喔了解感谢
作者: youtuuube000 (小孩)   2016-11-12 17:41:00
实用推!
作者: MangoTW (不在线上)   2016-11-12 22:58:00
要公平比的话,应该在 function scope 下
作者: mrbigmouth (大嘴先生)   2016-11-13 18:13:00
实务上 不管browser还是node都不太会直接用广域变量

Links booklink

Contact Us: admin [ a t ] ucptt.com