首頁 >Java >java教程 >如何檢查JVM中JIT編譯的組譯程式碼?

如何檢查JVM中JIT編譯的組譯程式碼?

Linda Hamilton
Linda Hamilton原創
2024-12-12 17:46:10150瀏覽

How Can I Inspect the JIT-Compiled Assembly Code in the JVM?

檢查 JVM 中的 JIT 編譯程式碼

Java 虛擬機 (JVM) 利用即時 (JIT) 來改善程式碼執行效率。雖然 JIT 在後台無縫運行,但有時開發人員可能會尋求檢查 JIT 產生的本機程式碼。本文提供有關如何查看 JIT 產生的彙編程式碼的說明。

一般用法

使用下列選項執行 JVM:

-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly

過濾特定方法

隔離彙編程式碼對於特定方法,請使用以下語法:

-XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=print,*MyClass.myMethod

請注意,方法名稱可能需要引號,具體取決於作業系統。內聯方法可能不會顯示所有最佳化。

在 Windows 上安裝所需的函式庫

要在 Windows 上存取這些選項,需要安裝特定的函式庫。可以從fcml 專案中取得預先建置的二進位檔案:

  • hsdis-amd64.dll
  • hsdis-i386.dll

hsdis-i386.dll

或,這些庫可以是使用Cygwin 手動建置。 fmlc 指南中詳細介紹了這兩種方法。

    附加說明
  • 對於Intel ASM 語法,請使用-XX:PrintAssemblyOptions=intel 以及其他選項.
  • 輸出的彙編程式碼通常很冗長,可能難以理解解釋。
解鎖診斷虛擬機器選項可能會影響效能。僅在出於診斷目的必要時才使用這些選項。

以上是如何檢查JVM中JIT編譯的組譯程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn