程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 如何控制JVM中的JIT行為?,控制jvmjit行為

如何控制JVM中的JIT行為?,控制jvmjit行為

編輯:JAVA綜合教程

如何控制JVM中的JIT行為?,控制jvmjit行為


首先交代一下我自己的測試環境:

Ubuntu 12.04 x86-64,OpenJDK 7 64-bit Server VM(mixed mode)

MacOS  10.11,HotSpot  7 64-bit Server VM(mixed mode)

 

1.如何關閉JIT?

一般情況下,JIT是默認開啟的,所以這裡只存在如何關閉的問題。

在啟動JVM的時候,只需增加-Xint或者-Djava.compiler=NONE選項即可:

java -Xint your_main_class_file_name

java -Djava.compiler your_main_class_file_name

如果是從Eclipse啟動,則需要在Run Configurations中指定上述參數。

 

2.如何查看JIT生成的匯編代碼?

有的時候,我們需要查看JIT生成的匯編代碼,來觀察JIT如何影響代碼的執行。

完成這項任務,需要安裝一個支持庫,hsdis,步驟如下。

Linux系統:

下載linux-hsdis-amd64.so或者linux-hsdis-i386.so

重命名為hsdis-amd64.so或者hsdis-i386.so

拷貝至$JAVA_HOME/jre/lib/amd64/目錄

我的機器上是/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/

 

OS X系統:

下載gnu-bsd-libhsdis-amd64.dylib或者gnu-bsd-libhsdis-i386.dylib

重命名為hsdis-amd64.dylib或者hsdis-i386.dylib

拷貝至$JAVA_HOME/jre/lib/目錄

我的機器上是/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre/lib/hsdis-amd64.dylib

 

安裝完支持庫之後,在啟動JVM的時候,只需增加以下兩個選項即可:

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly your_main_class_file_name

下面這個鏈接對此有詳細說明,可以參考:

https://wiki.openjdk.java.net/display/HotSpot/PrintAssembly

 

另外,如果不安裝支持庫的話,指定上述選項並啟動JVM時會有如下錯誤:

Java HotSpot(TM) 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output

Could not load hsdis-amd64.dylib; library not loadable; PrintAssembly is disabled

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved