百科问答小站 logo
百科问答小站 font logo



为何浏览器控制台的JavaScript引擎性能这么差? 第1页

  

user avatar   rednaxelafx 网友的相关建议: 
      

题主先试试在Chrome的console里对比一下这四段代码:

       for (var i = 1; i <= 10; i++) {   console.time(i);   for (var j = 0; j <256*256*256; j++) { };   console.timeEnd(i); }  /* or the version below   eval("for (var i = 1; i <= 10; i++) {            console.time(i);                               for (var j = 0; j <256*256*256; j++) { };      console.timeEnd(i);                          }") */      

和:

       function foo() {   eval("for (var i = 1; i <= 10; i++) {            console.time(i);                               for (var j = 0; j <256*256*256; j++) { };      console.timeEnd(i);                          }") } foo()      

还有:

       function foo() {   (0,eval)("for (var i = 1; i <= 10; i++) {        console.time(i);                               for (var j = 0; j <256*256*256; j++) { };      console.timeEnd(i);                          }") } foo()      

最后:

       function foo() {   for (var i = 1; i <= 10; i++) {     console.time(i);     for (var j = 0; j <256*256*256; j++) { };     console.timeEnd(i);   } } foo()      

有没有惊喜?

在我的本上跑,

  1. 大概7600-8000ms
  2. 大概5600-6000ms
  3. 大概150-160ms
  4. 大概9-10ms

恭喜题主中了eval大招…细节解释起来略麻烦。回头有空再说…




  

相关话题

  为什么Python不能出一个类似V8的编译器? 
  浏览器有哪些好用的功能,使用之后真的方便了生活而让你爱不释手? 
  为什么把 Script 标签放在 body 结束标签之后 html 结束标签之前? 
  你为什么喜欢用 Chrome?相较国产浏览器的优势在哪里? 
  有密集型(高频) https api 请求的需求,该用什么技术栈? 
  如何看待 360 程序员抄袭百度浏览器 JavaScript 源码? 
  moment.js为何要设计成mutable的,有何优缺点? 
  Chrome底部闪烁,出现html是为什么? 
  如何保证用户登录时提交密码已经加密? 
  为什么IE 360等浏览器都用小写字母e做logo? 

前一个讨论
为什么很多网民喜欢说「你支」,而不是好好称呼国家?
下一个讨论
装满的硬盘中是 1 多还 0 多?





© 2024-11-13 - tinynew.org. All Rights Reserved.
© 2024-11-13 - tinynew.org. 保留所有权利