阅读:4489回复:21
Firefox 9中加入类型推断 JavaScript性能将提高20%到30%
据外媒报道,在历时长达18个月的努力之后,Mozilla终于成功为Firefox的Javascript引擎增加了一个重大的新特性,根据初步测试,至少可以提高20%到30%的Javascript性能。这个新的特性就是在Firefox的JaegerMonkey JIT编译器中加入的类型推断(Type Inference),它将随同Firefox 9一起提供测试。类型推断最早被提及还要追溯到几个月之前的Firefox 5时代,但是直到现在它才第一次登上舞台。
对于Firefox 9来说,数据推断引擎可以将Javascript的性能提高30%。具体提升的数值根据测试的不同而有所不同,但性能的大大提升是毋庸置疑的。据ExtremeTeck在配置为Intel i7 930 @ 3.8GHz、内存6GB、显卡为Nvidia GTX 460的电脑上测试结果,在关闭类型推断的情况下,Kraken Benchmark的完成时间为3895毫秒;开启类型推断之后,时间缩短到2763毫秒。在V8 Javascript Benchmark中,关闭类型推断的Firefox 9的成绩为6075分,而开启类型推断后,成绩提升到6585分。即使在陈旧的微软HTML5 Sudoku测试中,10000格下类型推断将执行时间从2.6秒缩短至1.62秒;在FishBowl的帧率测试中,2000条鱼的情况下,类型推断开启后带来了15%-20%的性能提升。 終於決定在 FIREFOX9 使用 TI了 @@ |
|
1楼#
发布于:2011-09-02 12:02
我平时只测试 V8 Javascript Benchmark 和 SunSpider Benchmark,这个对 V8 Javascript Benchmark 成绩提高很多,对 SunSpider Benchmark 没有任何影响。
|
|
2楼#
发布于:2011-09-02 12:02
在我的机器上,SunSpider Benchmark 没任何影响,V8 Javascript Benchmark 提高了 30% 以上。刚刚又测试了一下 Kraken JavaScript Benchmark,提高了 24% 左右。
|
|
3楼#
发布于:2011-09-02 12:02
setTimeout/setTimeinterval 两个函数当间隔比较小时(如10ms)效率比主流所有浏览器都差得多(目测cpu占用率多4-20倍)。由Fx4到现在一点改进都没有
|
|
|
4楼#
发布于:2011-09-02 12:02
有进步总是好的,鼓励下。。。
|
|
5楼#
发布于:2011-09-02 12:02
|
|
7楼#
发布于:2011-09-02 12:02
|
|
8楼#
发布于:2011-09-02 12:02
dindog:setTimeout/setTimeinterval 两个函数当间隔比较小时(如10ms)效率比主流所有浏览器都差得多(目测cpu占用率多4-20倍)。由Fx4到现在一点改进都没有回到原帖 这个没试过。 我自己是写程序的,在 Windows 下,当时间间隔小于 56ms 时,需要使用的函数不一样。间隔 >=56ms 时,使用 SetTimer 这个函数即可。自己写的代码执行的时间,大于时间间隔也没关系,只是导致一些事件跳过不会执行。比如:间隔为100ms,但是自己写的计时器函数需要200ms才能执行完,那么第100ms、300ms、500ms …… 时程序会收到 WM_TIMER 这个消息,但是 200ms、400ms、600ms …… 时的 WM_TIMER 消息会被抛弃。 当间隔小于 56ms 时,需要使用 timeSetEvent 这个函数。但是,使用函数 timeSetEvent 时,需要注意,自己写的计时器函数,代码执行的时间,必须小于间隔时间,否则就会一直累积,导致CPU使用率越来越高,最后程序崩溃。比如,时间间隔是 10ms,但如果自己写的函数代码需要 20ms 才能执行完,那么每过 10ms 自己写的函数就会被调用,但此时上次的调用还没执行完,所以函数就会同时被执行很多次。刚开始还好一些,时间稍微长一点,那么同一时间这个函数就会被同时执行很多次,导致CPU使用率非常高。10几年前的 Windows 98,连 Windows 98 都会被这样搞死。所以,此时就需要一些机制,当上一次的代码还没执行完时,这次执行时需要跳过,让函数调用很快就结束,才不会导致问题。 |
|
9楼#
发布于:2011-09-02 12:02
GOLF-AT: 例子用个很简单的: http://www.w3schools.com/js/tryit.asp?f ... g_infinite 把间隔设小一点就可以同其它浏览起对比。差别很大。之前在mozest提到那个百度知道回答文本框焦点更明显。 |
|
|
10楼#
发布于:2011-09-02 12:02
编辑掉
|
|
11楼#
发布于:2011-09-02 12:02
我的电脑上,我改成 10ms 间隔,Firefox CPU使用率 6%~8%,Google Chrome 一共2个进程,加起来5%~5.5%左右,相差不是很多。 另外,CPU使用率没有一直上升到很大,说明 Firefox 的计时器函数代码没有问题,仅仅是代码的性能差一些,CPU 使用率稍微高一些。还有就是,这个可能和电脑性能有一些关系,不同的电脑上可能会表现不同。 |
|
12楼#
发布于:2011-09-02 12:02
slimx:编辑掉回到原帖 https://tylerdowner.wordpress.com/2011/ ... d-musings/ 的确,他是在失望中离开的。我原来也很有热情去给sumo做翻译,自从他们改用Rapid Release之后也就再没有热情了,他们总是在按照自己喜欢的方式在追随Chrome,我现在能做的就是远远地奢望着Firefox保持自己应有的特质。 让人郁闷的不光是Firefox越来越像Chrome,更重要的是你考虑到换一个浏览器,却发现没有谁能取代得了Firefox。 |
|
|
13楼#
发布于:2011-09-02 12:02
|
|
|
14楼#
发布于:2011-09-02 12:02
kmc: 大杯具啊。。。firefox没有个英明的领导 ----------------------- PS:KMC终于换掉了那个熟女头像了 |
|
上一页
下一页