国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
WebKit和Firefox的JavaScript性能對(duì)比 | 編譯點(diǎn)滴

嚴(yán)格的說(shuō)WebKit僅僅是個(gè)瀏覽器核心,采用該核心的瀏覽器很多,如國(guó)內(nèi)的搜狗瀏覽器,遨游瀏覽器。其他的如google的chrome(Windows平臺(tái),linux平臺(tái)下為chromium),epiphany(linux平臺(tái)下,gnome2.28版本之后),蘋(píng)果的Safari 都采用了webkit的內(nèi)核。Firefox則是采用Gecko的內(nèi)核,這是NetScape公司開(kāi)發(fā)的內(nèi)核,后來(lái)開(kāi)源,mozilla繼續(xù)開(kāi)發(fā)。另外,現(xiàn)在還有另外兩種常見(jiàn)的瀏覽器內(nèi)核,Trident主要用在IE系列上,Presto主要用在Opera上。

這篇文章僅僅針對(duì)瀏覽器處理JavaScript的性能作比較,主要在X86平臺(tái)和龍芯平臺(tái)。先來(lái)解釋一下JavaScript,JavaScript是互聯(lián)網(wǎng)內(nèi)較為常用的腳本語(yǔ)言,面向?qū)ο?,主要在瀏覽器內(nèi)解釋執(zhí)行,用于生成動(dòng)態(tài)網(wǎng)頁(yè),因?yàn)楹芏嗾Z(yǔ)言特性受Java影響,所以叫JavaScript。通過(guò)JavaScript,瀏覽器可以運(yùn)行服務(wù)器想要在訪問(wèn)者終端上運(yùn)行的一些計(jì)算程序,以達(dá)到更好的瀏覽體驗(yàn)。

再說(shuō)說(shuō)瀏覽器內(nèi)核和JavaScript的關(guān)系,其實(shí)JavaScrip腳本的執(zhí)行僅僅是瀏覽器內(nèi)核的一部分,其他的還有Html語(yǔ)言的解釋執(zhí)行,網(wǎng)頁(yè)的呈現(xiàn)等等也是內(nèi)核要做的。之所以這么關(guān)心瀏覽器核心對(duì)JavaScript腳本的處理情況,是因?yàn)楝F(xiàn)在的很多應(yīng)用不再是簡(jiǎn)單的網(wǎng)頁(yè)瀏覽,如gmail,google reader,gooe wave還有一些網(wǎng)頁(yè)3D特效等等都需要在客戶機(jī)上作計(jì)算,這就需要JavaScript大顯身手了。而且越來(lái)越多的應(yīng)用依賴JavaScript,所以現(xiàn)在瀏覽器對(duì)JavaScript的處理速度直接影響著用戶體驗(yàn)。目前WebKit的JavaScript引擎SquirrelFish,JavaScript的引擎是SpiderMonkey

目前JavaScript在大多數(shù)平臺(tái)上的處理是靠解釋執(zhí)行的,又因?yàn)槭莿?dòng)態(tài)類型,面向?qū)ο?。。。,決定了JavaScript執(zhí)行效率低,所以就誕生了各種針對(duì)JavaScript的優(yōu)化,也有了測(cè)試JavaScipt解釋器性能的BenchMark,目前常用的是Sunspider和google V8,這篇文章中的對(duì)比針對(duì)Sunspider測(cè)試集。

另外還要說(shuō)說(shuō)JIT,Just In time,轉(zhuǎn)換,將部分程序代碼直接轉(zhuǎn)換成機(jī)器碼執(zhí)行,這種技術(shù)在運(yùn)行時(shí)優(yōu)化中比較常用,JavaScript是解釋器,所以JIT在解釋器中也是很重要的優(yōu)化手段。目前X86的webkit和Firefox默認(rèn)就有JIT支持,但龍芯平臺(tái)上還沒(méi)有,本博也是最早對(duì)龍芯2F平臺(tái)有JIT支持的Webkit和firefox  JavaScript引擎作對(duì)比的,目前這兩個(gè)JIT都還沒(méi)有進(jìn)入官方的代碼庫(kù)中,感興趣的朋友可以在下面的前兩個(gè)鏈接中找到相關(guān)源碼。其中webkit的補(bǔ)丁還要做些宏的修改,改動(dòng)不大。這兩個(gè)都是從官方源碼庫(kù)checkout出來(lái)并修改之后的。其中firefox的JIT部分是由ZSC大牛寫(xiě)出來(lái)的,詳細(xì)的討論貼和測(cè)試結(jié)果可以在龍芯論壇看到,見(jiàn)下面的第三個(gè)鏈接。
x86下epiphany(webkit內(nèi)核)和firefox開(kāi)了jit之后的性能,如下

webkit Total:                  833.6ms +/- 2.1%firefox Total:                 1774.4ms +/- 2.7%

(測(cè)試環(huán)境是我的筆記本 intel Pentium t2390,開(kāi)了頻率調(diào)節(jié),所以波動(dòng)較大)、兩個(gè)差距:

TEST                   COMPARISON            FROM                 TO             DETAILS=============================================================================** TOTAL **:           2.13x as fast     1774.4ms +/- 2.7%   833.6ms +/- 2.1%     significant=============================================================================  3d:                  2.96x as fast      257.2ms +/- 2.1%    87.0ms +/- 1.0%     significant    cube:              3.36x as fast       79.2ms +/- 1.7%    23.6ms +/- 2.9%     significant    morph:             1.52x as fast       50.4ms +/- 1.4%    33.2ms +/- 3.1%     significant    raytrace:          4.23x as fast      127.6ms +/- 3.0%    30.2ms +/- 3.4%     significant  access:              3.26x as fast      237.0ms +/- 4.7%    72.8ms +/- 2.8%     significant    binary-trees:      8.82x as fast       67.0ms +/- 4.4%     7.6ms +/- 9.0%     significant    fannkuch:          3.48x as fast       98.2ms +/- 0.6%    28.2ms +/- 3.7%     significant    nbody:             2.50x as fast       51.4ms +/- 10.3%    20.6ms +/- 3.3%     significant    nsieve:            -                   20.4ms +/- 56.6%    16.4ms +/- 4.2%   bitops:              1.42x as fast       53.8ms +/- 1.9%    38.0ms +/- 0.0%     significant    3bit-bits-in-byte: *3.10x as slow*      2.0ms +/- 0.0%     6.2ms +/- 9.0%     significant    bits-in-byte:      -                   11.0ms +/- 8.0%    10.4ms +/- 6.5%    bitwise-and:       *2.33x as slow*      3.0ms +/- 0.0%     7.0ms +/- 0.0%     significant    nsieve-bits:       2.62x as fast       37.8ms +/- 1.5%    14.4ms +/- 4.7%     significant  controlflow:         8.76x as fast       50.8ms +/- 2.0%     5.8ms +/- 9.6%     significant    recursive:         8.76x as fast       50.8ms +/- 2.0%     5.8ms +/- 9.6%     significant  crypto:              2.34x as fast       93.8ms +/- 1.7%    40.0ms +/- 2.2%     significant    aes:               2.57x as fast       54.0ms +/- 3.6%    21.0ms +/- 4.2%     significant    md5:               2.62x as fast       26.2ms +/- 2.1%    10.0ms +/- 0.0%     significant    sha1:              1.51x as fast       13.6ms +/- 5.0%     9.0ms +/- 0.0%     significant  date:                1.87x as fast      275.2ms +/- 2.0%   147.0ms +/- 1.0%     significant    format-tofte:      2.75x as fast      149.0ms +/- 1.0%    54.2ms +/- 1.0%     significant    format-xparb:      1.36x as fast      126.2ms +/- 4.0%    92.8ms +/- 1.7%     significant  math:                1.12x as fast       89.8ms +/- 1.8%    80.2ms +/- 21.7%     significant    cordic:            2.13x as fast       43.4ms +/- 3.3%    20.4ms +/- 9.2%     significant    partial-sums:      *1.41x as slow*     34.4ms +/- 2.0%    48.6ms +/- 38.2%     significant    spectral-norm:     1.07x as fast       12.0ms +/- 0.0%    11.2ms +/- 12.2%     significant  regexp:              3.73x as fast      125.4ms +/- 15.5%    33.6ms +/- 2.0%     significant    dna:               3.73x as fast      125.4ms +/- 15.5%    33.6ms +/- 2.0%     significant  string:              1.80x as fast      591.4ms +/- 3.3%   329.2ms +/- 1.6%     significant    base64:            *1.24x as slow*     28.4ms +/- 2.4%    35.2ms +/- 1.6%     significant    fasta:             1.71x as fast      133.0ms +/- 2.3%    78.0ms +/- 4.6%     significant    tagcloud:          2.81x as fast      169.4ms +/- 3.8%    60.2ms +/- 8.2%     significant    unpack-code:       1.91x as fast      193.8ms +/- 4.4%   101.6ms +/- 2.7%     significant    validate-input:    1.23x as fast       66.8ms +/- 5.8%    54.2ms +/- 6.4%     significant

龍芯上的JIT具體對(duì)比數(shù)據(jù)不便透漏,可以從下面第三個(gè)鏈接中找到第一版發(fā)布時(shí)的測(cè)試數(shù)據(jù)。這里僅僅給出一個(gè)對(duì)比。webkit之所以with GUI是使用編譯出的迷你小瀏覽器中測(cè)試結(jié)果,no GUI是使用測(cè)試腳本跑出來(lái)的結(jié)果。

 Webkit with GUI Total:                  6723.4ms +/- 0.5%        no GUI   Total:                  6355.8ms +/- 0.5% Firfox Total 7000 ms 左右。

注: 龍芯中的JIT現(xiàn)在還不夠成熟,其中Webkit的JIT僅是針對(duì)MIPS III做的,沒(méi)有針對(duì)龍芯的特殊優(yōu)化。

另外,X86中firefox的版本是3.5.7,龍芯中firefox的版本是3.7pre1.WebKit在X86中版本是epiphany的2.28中的版本,龍芯中為SVN中的2010-01-12 r53114。X86運(yùn)行環(huán)境為Gentoo,Gcc4.4.2,Glibc2.11,龍芯運(yùn)行環(huán)境是玲瓏一體機(jī),GCC4.3(龍夢(mèng)修改版),Glibc2.10。

對(duì)比結(jié)果可見(jiàn):X86中WebKit瀏覽器的性能要明顯優(yōu)于Firefox,達(dá)到兩倍之多。龍芯相比起來(lái)還有些差距,不過(guò)相信優(yōu)化后龍芯的性能會(huì)更好。

參考

https://bugs.webkit.org/show_bug.cgi?id=30144

http://dev.lemote.com/code/firefox-3.7-loongson-jit

http://lemote.com/bbs/viewthread.php?tid=26687&extra=page%3D1

http://en.wikipedia.org/wiki/Google_Chrome

http://ineolee.com/pc/several-browser-core-introduction/

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
John Resig - JavaScript Performance Rundown
五分鐘使你的Firefox加速兩倍
8劈使Firefox可笑快
轉(zhuǎn)帖——有關(guān)瀏覽器內(nèi)核的區(qū)別,很有意義哦。
瀏覽器內(nèi)核
主流瀏覽器內(nèi)核介紹(前端開(kāi)發(fā)值得了解的瀏覽器內(nèi)核歷史)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服