8783
火狐狸
火狐狸
  • UID34717
  • 注册日期2010-11-29
  • 最后登录2013-04-16
  • 发帖数210
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:4489回复:21

Firefox 9中加入类型推断 JavaScript性能将提高20%到30%

楼主#
更多 发布于:2011-09-02 12:02
据外媒报道,在历时长达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了 @@

GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
1楼#
发布于:2011-09-02 12:02
我平时只测试 V8 Javascript Benchmark 和 SunSpider Benchmark,这个对 V8 Javascript Benchmark 成绩提高很多,对 SunSpider Benchmark 没有任何影响。
GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
2楼#
发布于:2011-09-02 12:02
在我的机器上,SunSpider Benchmark 没任何影响,V8 Javascript Benchmark 提高了 30% 以上。刚刚又测试了一下 Kraken JavaScript Benchmark,提高了 24% 左右。
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
3楼#
发布于:2011-09-02 12:02
setTimeout/setTimeinterval 两个函数当间隔比较小时(如10ms)效率比主流所有浏览器都差得多(目测cpu占用率多4-20倍)。由Fx4到现在一点改进都没有
以前firefox跳个票的时间现在可以发布几个正式版了-_-
dawlen
狐狸大王
狐狸大王
  • UID34286
  • 注册日期2010-10-20
  • 最后登录2015-05-28
  • 发帖数311
  • 经验15枚
  • 威望0点
  • 贡献值8点
  • 好评度0点
  • 社区居民
4楼#
发布于:2011-09-02 12:02
有进步总是好的,鼓励下。。。
asdfcc
火狐狸
火狐狸
  • UID31778
  • 注册日期2010-01-25
  • 最后登录2020-04-20
  • 发帖数181
  • 经验45枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
5楼#
发布于:2011-09-02 12:02
dindog:setTimeout/setTimeinterval 两个函数当间隔比较小时(如10ms)效率比主流所有浏览器都差得多(目测cpu占用率多4-20倍)。由Fx4到现在一点改进都没有回到原帖


别说得那么愤慨啦,FX4到现在也就半年吧
rasis
  • UID3105
  • 注册日期
  • 最后登录
  • 发帖数
  • 经验
  • 威望
  • 贡献值
  • 好评度
6楼#
发布于:2011-09-02 12:02
下载地址是哪个 我去下一个
msky
千年狐狸
千年狐狸
  • UID14649
  • 注册日期2006-09-21
  • 最后登录2023-04-03
  • 发帖数2959
  • 经验166枚
  • 威望0点
  • 贡献值12点
  • 好评度9点
  • 社区居民
7楼#
发布于:2011-09-02 12:02
rasis:下载地址是哪个 我去下一个回到原帖


google : firefox nightly
http://nightly.mozilla.org/

话说nightly的网页界面做得好漂亮!
GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
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 都会被这样搞死。所以,此时就需要一些机制,当上一次的代码还没执行完时,这次执行时需要跳过,让函数调用很快就结束,才不会导致问题。
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
9楼#
发布于:2011-09-02 12:02
GOLF-AT
这个没试过。
我自己是写程序的,在 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 都会被这样搞死。所以,此时就需要一些机制,当上一次的代码还没执行完时,这次执行时需要跳过,让函数调用很快就结束,才不会导致问题。
回到原帖

例子用个很简单的:
http://www.w3schools.com/js/tryit.asp?f ... g_infinite

把间隔设小一点就可以同其它浏览起对比。差别很大。之前在mozest提到那个百度知道回答文本框焦点更明显。
以前firefox跳个票的时间现在可以发布几个正式版了-_-
slimx
火狐狸
火狐狸
  • UID21790
  • 注册日期2007-11-09
  • 最后登录2013-08-05
  • 发帖数119
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2011-09-02 12:02
编辑掉
GOLF-AT
千年狐狸
千年狐狸
  • UID11611
  • 注册日期2006-02-20
  • 最后登录2019-12-30
  • 发帖数3239
  • 经验265枚
  • 威望1点
  • 贡献值260点
  • 好评度59点
  • 社区居民
  • 忠实会员
11楼#
发布于:2011-09-02 12:02

例子用个很简单的:
http://www.w3schools.com/js/tryit.asp?f ... g_infinite

把间隔设小一点就可以同其它浏览起对比。差别很大。之前在mozest提到那个百度知道回答文本框焦点更明显。

我的电脑上,我改成 10ms 间隔,Firefox CPU使用率 6%~8%,Google Chrome 一共2个进程,加起来5%~5.5%左右,相差不是很多。
另外,CPU使用率没有一直上升到很大,说明 Firefox 的计时器函数代码没有问题,仅仅是代码的性能差一些,CPU 使用率稍微高一些。还有就是,这个可能和电脑性能有一些关系,不同的电脑上可能会表现不同。
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
12楼#
发布于:2011-09-02 12:02
slimx:编辑掉回到原帖


https://tylerdowner.wordpress.com/2011/ ... d-musings/
的确,他是在失望中离开的。我原来也很有热情去给sumo做翻译,自从他们改用Rapid Release之后也就再没有热情了,他们总是在按照自己喜欢的方式在追随Chrome,我现在能做的就是远远地奢望着Firefox保持自己应有的特质。

让人郁闷的不光是Firefox越来越像Chrome,更重要的是你考虑到换一个浏览器,却发现没有谁能取代得了Firefox。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
13楼#
发布于:2011-09-02 12:02
GOLF-AT
我的电脑上,我改成 10ms 间隔,Firefox CPU使用率 6%~8%,Google Chrome 一共2个进程,加起来5%~5.5%左右,相差不是很多。
另外,CPU使用率没有一直上升到很大,说明 Firefox 的计时器函数代码没有问题,仅仅是代码的性能差一些,CPU 使用率稍微高一些。还有就是,这个可能和电脑性能有一些关系,不同的电脑上可能会表现不同。
回到原帖

9-10% vs 0-5%
fx9,chrome13
以前firefox跳个票的时间现在可以发布几个正式版了-_-
saga
火狐狸
火狐狸
  • UID35049
  • 注册日期2011-01-09
  • 最后登录2017-10-10
  • 发帖数119
  • 经验69枚
  • 威望0点
  • 贡献值48点
  • 好评度2点
  • 社区居民
14楼#
发布于:2011-09-02 12:02
kmc

https://tylerdowner.wordpress.com/2011/ ... d-musings/
的确,他是在失望中离开的。我原来也很有热情去给sumo做翻译,自从他们改用Rapid Release之后也就再没有热情了,他们总是在按照自己喜欢的方式在追随Chrome,我现在能做的就是远远地奢望着Firefox保持自己应有的特质。

让人郁闷的不光是Firefox越来越像Chrome,更重要的是你考虑到换一个浏览器,却发现没有谁能取代得了Firefox
回到原帖

大杯具啊。。。firefox没有个英明的领导
-----------------------
PS:KMC终于换掉了那个熟女头像了
上一页
游客

返回顶部