有誰用過針對Java程序的動態分析工具?
這個工具能探測出Java ByteCode中哪些代碼是永遠不執行的死代碼?
用過的高人指點一下:)
posted on 2008-06-05 02:48
獨孤求敗 閱讀(2397)
評論(7) 編輯 收藏
評論:
# re: Java程序動態分析工具有哪些?
2008-06-05 21:50 |
印象中javac已經可以去除不可及代碼了,到jit compiler這一層的話,肯定可以優化掉。
回復 更多評論
# re: Java程序動態分析工具有哪些?
2008-06-05 22:43 |
我知道,很多編譯器都有優化功能,但是優化得不是很徹底!例如,我曾經做過實驗:
(1)if(3!=4)
code_1;
(2)int X=1,Y=2;
if(5X*X!=Y*Y-1)
code_2;
在這兩種情形下,code_1、code_2都是永遠不執行的代碼,在編譯為字節碼時,編譯器應該把(1)和(2)中的所有的代碼都優化掉,但是javac只能優化掉(1)中所有的代碼,而不能將(2)中if條件和code_2優化掉...
@白色天堂
回復 更多評論
# re: Java程序動態分析工具有哪些?
2008-06-05 23:29 |
你所說的JIT Compiler是指執行字節碼時用的JIT技術嘛?比如Hotspot。還是指純粹的從源代碼到字節碼這一層的Compiler?
@白色天堂
回復 更多評論
# re: Java程序動態分析工具有哪些?[未登錄]
2008-06-06 15:19 |
# re: Java程序動態分析工具有哪些?
2008-06-06 16:26 |
Is there any code analysis tool that can find the dead code in a Java bytecode such as a class file?
@Hank
回復 更多評論
# re: Java程序動態分析工具有哪些?
2008-06-06 21:24 |
確實javac的優化做得很少,很多基本的優化都不會作,我的理解是SUN認為這些優化可以在jvm運行時由jit compiler完成,也就是你說的hotspot。SUN對他的這個技術似乎很有信心。
回復 更多評論
# re: Java程序動態分析工具有哪些?
2008-06-07 23:49 |