随笔-8  评论-67  文章-0  trackbacks-0
有谁用过针对Java程序的动态分析工具?

这个工具能探测出Java ByteCode中哪些代码是永远不执行的死代码?

用过的高人指点一下:)
posted on 2008-06-05 02:48 独孤求败 阅读(2389) 评论(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 | Hank
are you sure that you need 动态分析工具, not static code analysis?

http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#Java

try those. they can tell you the unreachable source block in your source code.  回复  更多评论
  
# 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 | 独孤求败
@白色天堂
hehe,maybe:)
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: