阅读:5424回复: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
嘛。反正任意一个百度知道的答案输入框,焦点放在那里就看出来了。空白配置确认过了,不少人也确认过了,slimx大连解决脚本都有了。。你确认了也没什么用吧 ![]() 单核cpu占用100%,双核50%。fx是单线程的 正好是2个月前的贴子 https://g.mozest.com/viewthread.php?tid ... e=1&extra= |
|
|
2楼#
发布于:2011-09-02 12:02
能给个测试界面吗?另外你得排除扩展和脚本冲突,我没有油猴或者其他脚本扩展 另外我发现有些界面在animate的时候,cpu占用可能会上升到70%(AMD X2 245,2.9G双核),但是仍然很流畅 而有的页面cpu占用没有那么高,却会出现不流畅的感觉(比如用fx4在新twitter界面滚动) 仿佛这种主观上的"卡"和cpu占用并没有直接联系 |
|
|
3楼#
发布于:2011-09-02 12:02
huhuhu:给的例子不好,试试这个网址 略微高些,我这里上到20% |
|
4楼#
发布于:2011-09-02 12:02
给的例子不好,试试这个网址
http://culture.ifeng.com/ 滚动鼠标时我的cpu超过60% 我在隔壁问了问说是这个脚本引起的 http://img.ifeng.com/tres/pub_res/JCore/scroll.v.1.2.js 具体原因就是setTimeout/setTimeinterval函数引起的。 |
|
5楼#
发布于:2011-09-02 12:02
|
|
6楼#
发布于:2011-09-02 12:02
|
|
|
7楼#
发布于:2011-09-02 12:02
|
|
|
8楼#
发布于:2011-09-02 12:02
kmc: 大杯具啊。。。firefox没有个英明的领导 ----------------------- PS:KMC终于换掉了那个熟女头像了 |
|
9楼#
发布于:2011-09-02 12:02
|
|
|
10楼#
发布于:2011-09-02 12:02
slimx:编辑掉回到原帖 https://tylerdowner.wordpress.com/2011/ ... d-musings/ 的确,他是在失望中离开的。我原来也很有热情去给sumo做翻译,自从他们改用Rapid Release之后也就再没有热情了,他们总是在按照自己喜欢的方式在追随Chrome,我现在能做的就是远远地奢望着Firefox保持自己应有的特质。 让人郁闷的不光是Firefox越来越像Chrome,更重要的是你考虑到换一个浏览器,却发现没有谁能取代得了Firefox。 |
|
|
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
编辑掉
|
|
13楼#
发布于:2011-09-02 12:02
GOLF-AT: 例子用个很简单的: http://www.w3schools.com/js/tryit.asp?f ... g_infinite 把间隔设小一点就可以同其它浏览起对比。差别很大。之前在mozest提到那个百度知道回答文本框焦点更明显。 |
|
|
14楼#
发布于: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 都会被这样搞死。所以,此时就需要一些机制,当上一次的代码还没执行完时,这次执行时需要跳过,让函数调用很快就结束,才不会导致问题。 |
|
上一页
下一页