當前位置:編程學習大全網 - 編程語言 - Wasm的簡介

Wasm的簡介

?由於公司項目的需求,現在主要是做脫Flash的工作(歷史原因用AS3.0做的)!現在全部轉為C++,並且發布PC版與Web版。其中Web的版本就是使用的Wasm(WebAssembly技術)。

WASM,全稱:WebAssembly,是壹種可以使用非Java編程語言編寫代碼並且能在瀏覽器上運行的技術方案,也是自Web誕生以來首個Java原生替代方案。程序本質上都是腳本程序,即由程序翻譯指令並執行,而不是由本地機器CPU讀取指令並執行,因此效率非常低。

而Java的操作相對重復繁瑣,在執行過程中耗時較長。其實創建Wasm的初衷並非為了替代JavaScript,而是為了實現兩者之間的補充和配合。隨著WebAssembly的引入,現代web瀏覽器的虛擬機將同時運行JavaScript和Wasm代碼。

WebAssembly比asm.js要激進很多。WebAssembly連標註Js這種事情都懶得做了,不是要AOT嗎?我直接給字節碼好不好?(後來改成AST樹)。

對於不支持WebAssembly的瀏覽器,會有壹段Javascript把WebAssembly重新翻譯為Javascript運行,這個技術叫polyfill,HTML5剛出來的時候很常用的壹個技術。

使用AST的原因是因為AST比字節碼更容易壓縮,也更容易翻譯。不了解AST可以看下面這張圖,說明Javascript引擎的執行過程。Javascript先編譯為AST,然後到Bytecode.AST的抽象程度比Bytecode要高壹級。

Wasm的技術優勢:

性能高效:WASM采用二進制編碼,在程序執行過程中的性能優越。

存儲成本低:相對於文本格式,二進制編碼的文本占用的存儲空間更小。

多語言支持:用戶可以使用C/C++/RUST/Go等多種語言編寫智能合約並編譯成WASM格式的字節碼。

WebAssembly的虛擬機

WebAssembly(縮寫Wasm)是基於堆棧虛擬機的二進制指令格式。Wasm為了壹個可移植的目標而設計的,可用於編譯C/C+/RUST等高級語言,使客戶端和服務器應用程序能夠在Web上部署。

WASM有多種實現,包括瀏覽器和獨立系統,它可以用於視頻和音頻編解碼器、圖形和3D、多媒體和遊戲、密碼計算或便攜式語言實現等應用。

Emscripten安裝Emscripten編譯器,是WebAssembly開發的重要工具之壹,主要是通過emcc(EmscriptenCompilerFrontend)來工作的。這是個命令行工具。

  • 上一篇:parameters這詞什麽意思?
  • 下一篇:年齡超過35歲適合學習IT方向嗎?
  • copyright 2024編程學習大全網