百科问答小站 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大招…细节解释起来略麻烦。回头有空再说…




  

相关话题

  JavaScript能否能实现所有函数调用时的钩子函数? 
  如何看待微软 Edge 浏览器将使用 Chromium 内核? 
  如何看待 QQ 扫描读取所有浏览器的历史记录? 
  为什么要用lastpass? chrome自己带的同步不行? 
  如何看待B站 (bilibili) 开源 HTML5 播放器内核 flv.js? 
  JavaScript 关于 if…else if…else 的疑问? 
  为什么说js中的array不是真array,class不是真class? 
  有有效办法判断是否是伪造的User Agent的浏览吗? 
  Chrome浏览器上有没好用的支持滚动截图的截图软件? 
  如何评价 Ant Design 这个项目(一个设计语言)? 

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





© 2025-01-31 - tinynew.org. All Rights Reserved.
© 2025-01-31 - tinynew.org. 保留所有权利