激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

服務器資訊|IT/互聯網|云計算|區塊鏈|軟件資訊|操作系統|手機數碼|百科知識|免費資源|頭條新聞|

服務器之家 - 新聞資訊 - 軟件資訊 - 首個運行 WebAssembly 的 Java 庫 Wasmer JNI 出現了

首個運行 WebAssembly 的 Java 庫 Wasmer JNI 出現了

2020-05-16 21:24開源中國 軟件資訊

用于執行 WebAssembly 二進制程序的Wasmer 公開了目前業內首個支持WebAssembly 的Java 擴展庫 Wasmer JNI。

用于執行 WebAssembly 二進制程序的Wasmer 公開了目前業內首個支持WebAssembly 的Java 擴展庫 Wasmer JNI。

首個運行 WebAssembly 的 Java 庫 Wasmer JNI 出現了

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

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

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

•安全:對 WebAssembly 的所有調用完全安全并且沙箱化隔離

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

•amd64-darwin:macOS、x86 64

•amd64-linux:Linux、x86 64

•amd64-windows:Windows、x86 64位

同時開發者可以為自己的平臺和架構生成自己的 JAR。

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

來看一個從 Java 調用 WebAssembly 的 demo:

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

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

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

接著 Java 程序通過傳遞 5 和 37 這兩個參數來執行 sum 函數:

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,它是為基于棧的虛擬機設計的二進制指令格式,WASM作為可移植目標,用于編譯高級語言(如 C/C++/Rust),從而可以在Web 上部署高性能客戶端和服務器應用,同時它也可以在許多其它環境中使用。

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产超碰人人做人人爱ⅴa 国产精品久久久久久久hd | 国产色片 | 欧美精品免费一区二区三区 | 欧美一级做性受免费大片免费 | 美女黄影院 | 宅男视频在线观看免费 | 久久蜜桃精品一区二区三区综合网 | 369看片你懂的小视频在线观看 | 天天草天天色 | 视频一区二区不卡 | 俄罗斯hdxxx| 久久草在线观看视频 | 久国产 | 欧美特黄三级成人 | 污片在线观看视频 | 精品国产96亚洲一区二区三区 | 久久网站热最新地址 | 九九热免费视频在线观看 | 国内精品久久久久久影视8 国产一区二区成人在线 | 国产一级小视频 | 黄片一级毛片 | 毛片在线看免费 | 成年人高清视频在线观看 | 日本在线视 | 国产五区| 日韩视频不卡 | 成年性羞羞视频免费观看 | 久久tv免费国产高清 | www.9191.com| 国产成人在线免费视频 | 成人一级黄色 | 亚洲一区成人 | 精品国产一区二区三区四区阿崩 | 成人一区二区三区四区 | 免费视频aaa| 国产视频软件在线 | 97久久精品一区二区三区观看 | 国产一级片| 国产一区二区国产 | 久久久婷婷一区二区三区不卡 | 精品国产一区二区久久 |