注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

fanhq666的博客

Fan-Fun

 
 
 

日志

 
 

测试:chrome执行javascript有多快?  

2011-01-05 20:23:52|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

我曾经一直认为执行效率是卡住javascript腾飞的瓶颈,但当我用实践去检验的时候...被震撼了.

 

第一个测试:暴力法枚举质数.这个主要考察"体力活"的表现.

<script>
 var s=0;
 for (var i=2;i<=1000000;i++){
  var j;
  for (j=2;j*j<=i;j++)
   if (i%j==0) break;
  if (j*j>i)s++;
 }
 document.getElementById("div1").innerHTML=s;
</script>

这个代码用c++写跑了1.7秒,输出78498.

在IE8中跑了73秒,外加点了无数次确认框...不过执行结果对了.

而在Chrome中,3秒就跑完了!

我对Chrome的表现表示钦佩:如果不是用先编译在执行的技术的话,那么这个解释器的执行效率也太恐怖了!反观那个IE...我同意IE Must Die的说法了,除非IE9能带来惊喜.

 

 

第二个测试:快速排序.主要考察对object、递归调用的执行能力。

(代码见下面)

 

C++版的跑了0.5s,IE崩了,Chrome跑了4s,依然是非常的出色.

 

于是:初步判断:Chrome用了某个很神奇的javascript引擎,脚本的执行效率已经基本不太用愁了.......IE,要么去死,要么抓紧改进.

 

 

这个代码我不

<script>
function qs(d,b,e){
 if (b>=e)return;
 var t,j=b+1;
 for (var i=j;i<=e;i++){
  if (d[i].y<d[b].y){
   t=d[i].y;d[i].y=d[j].y;d[j].y=t;
   t=d[i].x;d[i].x=d[j].x;d[j].x=t;
   j++;
  }
 }
 --j;
 t=d[j].x;d[j].x=d[b].x;d[b].x=t;
 t=d[j].y;d[j].y=d[b].y;d[b].y=t;
 qs(d,b,j-1);qs(d,j+1,e);
}
 var n=1000000;
 var a=1,b=new Array(n);
 for (var i=0;i<n;i++){
  b[i]=new Object();
  b[i].x=i;
  b[i].y=a;
  a=(a*5+1)%65536;
 }
 qs(b,0,n-1);
 for (var i=n/2;i<n/2+10;i++)document.getElementById("div1").innerHTML+="("+b[i].x+" "+b[i].y+")";
</script>

  评论这张
 
阅读(929)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017