Firefox:IE9在SunSpider速度测试有作弊嫌疑
据国外媒体报道,Mozilla工程师发现罗布-塞尔(Rob Sayre)发现,微软IE9可能在SunSpider基准测试中作弊。
SunSpider是一个JavaScript基准测试平台,它可以衡量一款浏览器的JavaScript引擎性能。虽然SunSpider是由苹果开发,但现已成为十分流行的浏览器JavaScript引擎测试平台。微软发布的最新测试结果显示,IE9平台预览版第7版的JS运行速度提供了345%,并且已经超过Firefox 4.0。
Rob Sayre在对Firefox 4和其它浏览器进行基准测试时,注意到IE9在SunSpider的math-cordic测试速度是其它浏览器的10倍,Chrome和Opera的用时都在10毫秒左右,而IE9只需1毫秒。塞尔随后更改了SunSpider测试代码中的两个影响不大的变量,结果显示IE9测试用时是原来的20倍(20毫秒),而Opera和Chrome测试时速度保持不变。
科技网站Hacker News对此进行了深入的分析。结果显示,IE9很可能专门针对SunSpider的math-cordic测试进行了优化。通过简单的修改基准代码,IE9便可以取得很好的成绩。
Hacker News认为,SunSpider测试可能存在缺陷。但如果微软专门针对SunSpider测试进行优化,那么微软就存在作弊的嫌疑。
Sayre将此作为Bug提交给了微软,在报告中,Sayre指出:“我总结如下:在多次测试中结果保持不变(1ms,没有任何变化);在多个平台上的测试中结果保持不变,我已经在多个系统上运行了测试,但是结果每次都是(1ms +/- 0.0%);在不改变代码功能的情况下调整测试代码,测试结果却出现了20ms的变化,这很难理解。”
“所以这应该是一个Bug,或者是一种功能。不管是哪种情况,这种不一致性应当仪器重视,因为很多人会根据基准测试结果来做出重大的商业决策。”
微软对此做出了回应:
“我们对IE9 JavaScript引擎Chakra所做的一个改进就是完善了实际使用中网站的性能,包含无用代码(dead code)删除。昨天下午,有人在微软Connect反馈网站上提出了一个(关于math-cordic测试的)问题。
简单的说,IE9的JavaScript引擎包含很多不同的改进,以完善实际使用中网站和应用程序的性能,你可以在www.ietestdrive.com测试网站上直观的看到,你也可以使用IE9和其它浏览器在那里测试不同的项目。IE9 JavaScript引擎的表现并不是针对某个基准进行的"特殊情况的优化",也不是Bug问题。”
文章引用地址:http://www.iefans.net/mozilla-ie9-sunspider-zuobi/ 作者:iefans

建议iefans翻译一下这篇文章:
http://blogs.msdn.com/b/ie/archive/2010/11/17/html5-and-real-world-site-performance-seventh-ie9-platform-preview-available-for-developers.aspx
说明sunspider程序要改了,无用代码不执行的确是个不错的功能(只要不出bug),但是测试速度使用很多无用代码也是正常的。只能说,目前IE9的sunspider的好成绩不具有说服力。
这个怎么能算作弊呢,自动判断无用代码当然算是改进拉。有本事你自己怎么没有发现这个问题了,要不你也可以用Firefox 4.0做个测试,说Firefox 4.0的JS速度快了好几倍啊!可惜Firefox你没有这个本事,就知道使坏。
简单添加一个return,对实际的代码执行不产生任何影响。如果真的如微软说的,那么添加return的话,IE9一样可以优化无用的代码,但实际情况根本不是那样。这只能说明一个问题,IE9针对这个测试作假了。所谓的优化,只是微软的程序员,看到测试代码有问题,当发现是测试代码时,就直接执行人为优化的代码,而不是程序自己能够优化无用的代码。
IEblog里面的文章本人一直都有关注,也尝试了去翻译一些文章,但由于本人英文能力比较弱的缘故,翻译出来的内容并不是非常通顺,有时候自己都不能把握好意思。不过有很多空余时间的话,我还会尝试去翻译的,也希望有这方能力的朋友能够加入到我们的行列中来。有意的请加QQ:329070985,谢谢。
IE浏览器怎么可能比FF比chrome快呢?在以往的任何JS速度测试中,IE浏览器都垫底的,这次居然说自己变成第一了,那肯定是作弊的啊,只允许FF和chrome比IE快100倍,IE快那肯定是不正常的啊
如果浏览器是裸奔的话,Firefox还是chrome确实要比IE浏览器快,但是一装上扩展,你还会觉得他们快吗。要是不安装这些扩展的话,我们为什么还要费力气来安装这两款浏览器了,用他们就是看中这些扩展。所以要综合比下来的话,这些浏览器的速度应该没有多大的区别的。
我赞同楼上的看法,浏览器外挂装得越多,ram跟cpu消耗的自然也会更多,因此测试的得分一定会比较低。希望以后搞浏览器测试的话,应该按照正常使用中的情况来测试。
浏览器优化代码这么平常的事情竟然被人家说是在作弊,难道非得傻乎乎地去执行return才算不作弊么。何况优化代码也是想让浏览器运行更加快速,这个有什么过错?说到底就是Firefox自己不行,就要说人家也不行。
由于微软的浏览器紧密与系统集成所以性能出众,这就是垄断的力量!