8 種 HTML5 Canvas、Javascript測試

很炫的八種測試,可以試試看網頁瀏覽器有沒有支援跑得快不快

8 Simply Amazing HTML5 Canvas and Javascript Animations

ubuntu 限制頻寬

在台灣很不平等得上傳下載網路傳輸條件之下
通常上傳被吃滿情形很常見(上傳相片、檔案…)而且上傳慢又要傳很久
還會影響到他人使用網路,用瀏覽器時又不能限制頻寬
這時候就需要頻寬限制軟體出馬

wondershaper eth0 download rate upload rate

eth0:連線網路卡
download rate:下載速率 (kb/s);upload rate:上傳速率 (kb/s)

碰到這種吃到系統業者頻寬時,更是需要這種頻寬限制軟體

延伸閱讀:

【系統】Ubuntu : 限制網路頻寬 @ My Life :: 隨意窩 Xuite日誌
Wondershaper流量監控工具


Firefox 4.0 beta2

本來以為 Firefox 4.0 大概只有JägerMonkey有點看頭
其他的D2D,介面,app tab,WebM,WebGL 沒什麼

但後來發現了還有 Retained Layers,這個解決了FX長期以來的捲動bug

看原文上的說明,將現在FX的作法(每更改一次物件屬性就重新繪製)
改成把物件cache起來 屬性有變動直接更改cache的物件(不重新繪製這個物件)

scroll也類似如此,將網頁內容繪製好後 用offset方式呈現scroll的效果
以前的方式是像素平移(移動一個像素在繪製下一個)
FX 4.0 負責呈現這些效果的是GPU跟它龐大的frame buffer

而今天釋出的Firefox 4.0 beta 2 已經正式將Retained Layers放進來了
也把JägerMonkey放進來了

不過目前有些小bug 有時候字型會模糊掉 (有時候是清楚的)

Mozilla Firefox 4.0 beta 2
Mozilla Firefox 4.0 beta 2 release note

螞蟻測試

現在寫這篇似乎有點晚

Mozilla Summit 2010 的這個螞蟻測試充分表達TraceMonkey的缺點
只能trace簡單的數學function,附加上一些條件就會trace失敗

蟻模式算是TraceMonkey發揮maxium的狀態,但似乎還是比Google chrome慢
蟻模式可以算TraceMonkey 全部trace 失敗的狀況,實在慘不忍睹
(相對於Google Chrome,Safari 紅蟻模式速度沒有太大變化)

影片中也秀出當時(2010/7/7~7/9)JägerMonkey目前的成效
Tracemonkey 當時速度約為JägerMonkey的2倍快
(照印象中Are We Fast Yet!的數據應該也是如此)
JägerMonkey優點在於紅蟻模式,回家模式效能可以保持住

以現在來看JägerMonkey的效能的話 他已經可以跟上TraceMonkey了
但與Google Chrome,Safari 尚有近兩倍的效能差距

如果不加油一點解決JägerMonkey 效能bug 以及跟TraceMonkey整合的話
FX未來堪慮!

Tracemonkey + JägerMonkey = ?

首先回應一下標題 Tracemonkey+JägerMonkey=SpiderMonkey
而SpiderMonkey則是Firefox的Javascriopt Engine (如下圖)


Tracemonkey 為Firefox 3.5開始採用的JIT (Just In Time compiler)
但有個缺點就是Trace 失敗時,會採用舊的方式執行Javascript (而這個方式很慢)

JägerMonkey 就是要改良這個問題的solution
它採用Method JIT + nitro assembler( this one is from WebKit)

###############以上只是單純的介紹#####################
而今天會寫這篇主要是想大約估計一下 Firefox 4.0 Javascript 會有多快
參考資料:

以下這些純粹只是大略估計,有一些假設的前提不一定符合現實狀況
1.假設TraceMonkey 跟 JägerMonkey 為不相依互相獨立
2.所有Javascript 在TraceMonkey成功時的速度 約為 W/O JIT的9倍快
3.所有Javascript 在JägerMonkey 約為 W/O JIT的3倍快(現在為2.66倍)

然後開始列國中的方程式吧! (以下代數單位皆為ms)

x=tracemonkey,y=JägerMonkey,z=target
o=original tracemonkey,w=W/O JIT

x+y=z
x+3y=o (x+2.66y=o)
9x+3y=w (9x+2.66y=w)

從最新資料代入數據(w=1850.3 ,o=694),解答z
x=144.54  , y=206.56  , z=351.1
可以從這邊注意到TraceMonkey 只比 JägerMonkey 稍微快一點
(從參考資料內得知JägerMonkey還有30個左右的bugs會拖累速度 未來會繼續改進)
351.1就是目前合體後的速度,  已經趕上apple Google的速度(但差別不大)
########################################################

假設最後JägerMonkey的速度進步到跟apple, google 的速度一樣快時
(JägerMonkey 就真的是W/O JIT的三倍快)
x=144.54 , y=183.15 , z=327.69
用這個來畫未來合體之後的效能參考線看看

最下面綠色線就是TraceMonkey + JägerMonkey最為理想的速度

結論:TraceMonkey 沒有想像中厲害,只比 apple, Google快 23%(還以為是好幾倍)
由於spidermonkey裡面JägerMonkey消耗的時間就佔據了一半以上
這樣會大幅度削弱了TraceMonkey的23%優勢,整個spidermonkey 只快了10%
未來如果要更強的話只有增加TraceMonkey trace的成功率
(或者將TraceMonkey 不容易trace成功的轉向JägerMonkey)

orangeFox 3.6.7

orangeFox 3.6.7 更新

Mozilla Firefox 3.6.7 剛出來順便更新一下
####################################
這個 blog 點閱數快跟上 上一個被我砍掉的blog
就順手更新一下
compile參數稍微變動一下,感覺起來有變快不少
(-mtune k8-sse3 改成-mtune native)

然後在順便測試一下,tracemonkey  & pgo 使用前後的差異
開tracemonkey javascript會快個20%,pgo下去則比trackmonkey 又快了一倍.
(之前還以為用特殊方法避開segmentation fault  PGO可能會沒效果)

orangeFox-3.6.7.zh-TW.linux-x86_64_K8 Download from Google sites

orangeFox 3.6.4 build5

orangeFox 3.6.4 build 5
Download from Google Sites
mediafire mirror

應該是最後一個rc版,正式版會在6月1日釋出

Previous Older Entries