jvm fastdebug
背景
RednaxelaFX?寫道?
agapple 寫道還有一個問題,就是在驗證一些逃逸優化時,有些jvm參數用不了,比如-XX:printInlining,-XX:printAssembly,jdk用的是1.6.11和jdk1.6.18 ?
-XX:+PrintInlining在product build的Sun JDK上可以是可以用,但什么也顯示不出來。要在debug build(debug或者fastdebug)上才有意義。
-XX:PrintAssembly的使用請參考這篇文章:JVM 反匯編動態運行代碼
簡單來說,如果在聲明那些VM參數的地方,寫著是product、product_pd、diagnostic或者manageable的,那就是在平時用的product build里可以用的。其它都至少得在fastdebug build里才可以用。
?
jdk fastdebug版本說明:http://blogs.oracle.com/kto/entry/mustang_jdk_6_0_fastdebug
jvm會有product build , debug build , fastdebug build類型的版本,
?
下載&安裝
fastdebug版本下載: http://download.java.net/jdk6/6u25/promoted/b01/index.html
?
找到自己合適的系統的安裝包,我選擇的是jdk-6u25-ea-bin-b01-linux-i586-debug-27_jan_2011.jar
說明:
1. ?axel是一個多線程下載器,下載速度比wget要快很多。
2. ?下載的包為一個自解壓的包,運行java -jar后,通過GUI就可以選擇解壓的最終目錄,出來的也就是fastdebug版本
?
binutils: http://directory.fsf.org/project/binutils/
?
下載:http://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.bz2 ?
編譯:
hsdis下載:?http://kenai.com/projects/base-hsdis/downloads/download/linux-hsdis-i386.so
?
最后我選擇了一個編譯好的linux 386的so包,省去了一些編譯的過程。
環境變量設置腳本
1.#!/bin/sh 2. 3.BASE=/usr/local/program/fastdebug 4.JAVA_HOME="$BASE/jdk1.6.0_25" 5.export LD_LIBRARY_PATH="$BASE/hsdis-i386.so:$LD_LIBRARY_PATH" 6. 7.PATH=$JAVA_HOME/bin:$PATH需要切換到fastdebug的jvm時,只需運行下該腳本。
注意點號和fastdebug.sh之間有空格,直接在當前進程中運行該shell,生成的環境變量就會在當前的bash窗口中生效。
測試過程中,通過設置LD_LIBRARY_PATH貌似沒用,最后無奈選擇了copy到對應jre的lib庫下
最后體驗一下
總結
以上是生活随笔為你收集整理的jvm fastdebug的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到蛇乱跑预示着什么
- 下一篇: 做噩梦梦到僵尸怎么回事