在Firefox 58中,WebAssembly组件性能提升了10倍
Mozilla在Firefox 58中為WebAssembly(WASM)組件推出了一套雙層編譯系統,號稱解析和編譯WASM代碼的速度達到30-60MB/s,足夠在有線網絡中實現實時編譯。基準測試表明,新版的性能比舊版提高了10倍,比Chrome快10倍以上。
在Mozilla Hacks博客的一篇文章中,Lin Clark列舉了一些測出的性能數據:
在一部臺式機上,我們編譯WebAssembly代碼的速度高達30-60MB每秒,比網絡傳輸數據包的速度都快。
使用Firefox Nightly或Beta的用戶可以在自己的設備上體驗這一進步。即使在性能一般的移動設備上編譯速度也有8MB/s,快過絕大多數移動網絡的平均下載帶寬。
獨立測試人員復現了類似的測試結果。 Reddit用戶a_potato_is_missing用Luke Wagner的tanks編譯速度測試做了對比,他使用一臺安裝了安卓系統的華為P10 Lite進行測試,結果顯示,在Firefox v57中的編譯速度為1.7MB/s,換成Firefox v58就提升到了11.8MB/s。 Windows 10桌面平臺的測試中,編譯速度從v57上的9MB/s提高到了v58上的52.8MB/s。相比之下,Chrome在Android設備上只跑了1MB/s,桌面平臺上只有4.1MB/s,遠遠落后。
這次性能提升之前,人們已經發現WebAssembly組件的速度比JavaScript更快了。此前的報告中,Figma的一篇案例分析顯示,切換到WebAssembly可以帶來3倍的加載速度;Hackernoon公布的基準測試則表明,計算密集型圖形程序的執行速度提升了30%。
在一篇博文中,Lin Clark詳細介紹了編譯器如何利用Firefox的并行架構將編譯任務拆解為兩個獨立的線程。第一個線程直接啟動,實時將網絡傳輸來的代碼編譯成一個基礎版本;第二個線程則在后臺將這個基礎版本進一步編譯為優化好的版本。優化版本編譯完成后就會替換掉基礎版本,進一步提升代碼運行效率。
這次改進意味著WebAssembly可以在網絡傳輸代碼的同時實時編譯出結果。Yehuda Katz指出了這一進步對web開發的意義:
JavaScript代碼需要花費時間解析編譯,所以資源消耗遠比相同大小的圖像文件要多。如今WASM可以做到實時解析和編譯,其資源消耗就更接近圖像文件,比JavaScript省力多了。改變游戲規則啊!
相關文章:
WebAssembly,開發者贏了
WebAssembly:隨風潛入夜
實驗進行中:.NET WebAssembly支持
使用Mono將C#編譯運行至WebAssembly平臺
原文地址:http://www.infoq.com/cn/news/2018/02/firefox-58-web-assembly-gets-10x
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的在Firefox 58中,WebAssembly组件性能提升了10倍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Actor-ES框架:Ray-Handl
- 下一篇: Actor-ES框架:Ray-Handl