apangin/nalim:基於 JVMCI 的快速 Java 原生介面

banq發表於2022-10-18

Nalim 是一個使用JVMCI(JVM 編譯器介面)將 Java 方法連結到本機函式的庫 。
與其他用於本地庫訪問的 Java 框架不同,nalim 不使用 JNI,因此不會產生與 JNI 相關的開銷
使用 nalim 呼叫本機函式時:

  • 執行緒不會從in_Java狀態切換到in_native狀態再返回。
  • 不涉及記憶體障礙。
  • 沒有建立JNI控制程式碼。
  • 省略了異常檢查和安全點檢查。
  • 本地函式可以直接訪問堆中的原始陣列。

因此,與 JNI 相比,本機呼叫變得更快,尤其是在目標函式很短的情況下。從這個意義上說,nalim 類似於 JNI Critical Natives,但依賴於標準支援的介面。JNI Critical Natives在 JDK 16 中已被棄用,自 JDK 18 起已被[url=https://bugs.openjdk.org/browse/JDK-8258192]淘汰[/url],因此 nalim 可以作為替代品。

 

相關文章