亚洲处破女a片60分钟_国产精品亚洲国产在 _99e热久久免费精品首页_天堂tv在线高清在线观看_国产亚洲精品美女久久

專業(yè)下載站,下載軟件就到188下載站

188軟件園

您的位置: 188軟件園>資訊頻道>業(yè)界資訊

首個運行 WebAssembly 的 Java 庫 Wasmer JNI 出現(xiàn)了

首個運行 WebAssembly 的 Java 庫 Wasmer JNI 出現(xiàn)了

20-05-15 | 作者:互聯(lián)網(wǎng) |

  用于執(zhí)行 WebAssembly 二進制程序的Wasmer 公開了目前業(yè)內(nèi)首個支持WebAssembly 的Java 擴展庫 Wasmer JNI。

  根據(jù)介紹,此次開源出來的 Wasmer JNI 的特性包括:

  •易于使用:API 模仿標準的 WebAssembly API

  •快:極盡可能運行 WebAssembly 模塊

  •安全:對 WebAssembly 的所有調(diào)用完全安全并且沙箱化隔離

  Wasmer JNI 庫為不同平臺生成 JAR 包,目前支持:

  •amd64-darwin:macOS、x86 64

  •amd64-linux:Linux、x86 64

  •amd64-windows:Windows、x86 64位

  同時開發(fā)者可以為自己的平臺和架構(gòu)生成自己的 JAR。

  性能方面,由于 Wasmer JNI 是首個執(zhí)行 WebAssembly 的 Java 庫,因此無法與 Java 生態(tài)中的其它項目作比較,但是,不過因為 Wasmer 自身的設(shè)計上有優(yōu)勢,它帶有 3 個后端:Singlepass、Cranelift 與 LLVM,Wasmer JNI 庫目前使用 Cranelift 后端,這在編譯時間和執(zhí)行時間之間提供了最佳折衷方案。Wasmer 在 WebAssembly 服務(wù)器運行時領(lǐng)域居于領(lǐng)先地位,去年獲得了InfoWorld 2019 年最佳開源軟件獎。

  來看一個從 Java 調(diào)用 WebAssembly 的 demo:

  從一個簡單的 Rust 程序入手,將其編譯為 WebAssembly,然后從 Java 執(zhí)行。

  #[no_mangle]pub extern fn sum(x: i32, y: i32) -> i32 { x + y}

  編譯為 WebAssembly 后,得到一個名為simple.wasm 的文件。

  接著 Java 程序通過傳遞 5 和 37 這兩個參數(shù)來執(zhí)行 sum 函數(shù):

  import org.wasmer.Instance;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Paths;class SimpleExample { public static void main(String[] args) throws IOException { // Read the WebAssembly bytes.

  byte[] bytes = Files.readAllBytes(Paths.get("simple.wasm")); // Instantiate the WebAssembly module.

  Instance instance = new Instance(bytes); // Get the `sum` exported function, call it by passing 5 and 37, and get the result.

  Integer result = (Integer) instance.exports.getFunction("sum").apply(5, 37)[0]; assert result == 42; instance.close(); }}

  可以看到,Wasmer JNI 的API 與標準 JavaScript API 非常相似。

  WebAssembly也叫 WASM,它是為基于棧的虛擬機設(shè)計的二進制指令格式,WASM作為可移植目標,用于編譯高級語言(如 C/C++/Rust),從而可以在Web 上部署高性能客戶端和服務(wù)器應(yīng)用,同時它也可以在許多其它環(huán)境中使用。

  WebAssembly 描述了一種內(nèi)存安全的沙箱執(zhí)行環(huán)境,該環(huán)境甚至可以在現(xiàn)有 JavaScript 虛擬機內(nèi)部實現(xiàn)。當嵌入到 Web 中時,WebAssembly 將強制執(zhí)行瀏覽器的同源和權(quán)限安全策略。

  WASM 有多種實現(xiàn),包括瀏覽器和獨立系統(tǒng),它可以用于視頻和音頻編解碼器、圖形和 3D、多媒體和游戲、密碼計算或便攜式語言實現(xiàn)等應(yīng)用。目前 Wasm 已經(jīng)支持 Chrome、Firefox、Safari 與 Edge 瀏覽器。

  對于 Web 來說,因為其虛擬指令集設(shè)計,WebAssembly 可讓加載的頁面以本地編譯代碼運行,從而可以提高Web 性能。換句話說,WebAssembly 可以實現(xiàn)接近本地的性能,并且優(yōu)化加載時間,同時最重要的是,它可以作為現(xiàn)有代碼庫的編譯目標。

網(wǎng)友評論

您的評論需要經(jīng)過審核才能顯示 網(wǎng)名

0條評論>網(wǎng)友評論