繁体   English   中英

如何静态分析jar包(map-reduce应用程序)并提取一些影响执行时间的功能?

[英]How to statically analyze a jar package(map-reduce application) and extract some features which affect execution time?

哪些代码功能会影响程序的执行时间? 有什么方法可以静态分析jar包并提取这些功能? 例如逻辑运算的计数,算术运算的计数,io操作的频率,调用堆栈的深度等。我想静态分析map-reduce应用程序的jar包并提取一些有用的代码功能,这些功能将影响执行时间。 我可以将程序包解压缩到.class文件中,也可以将.cl​​ass文件反编译为Java代码,但是不同的map-reduce应用程序具有不同的操作,如何分析这些文件以获得所需的功能? 如果我想知道代码中的循环计数,是否需要分析hadoop需要处理的拆分数据文件的行数?

基本上是不可能的。 程序的执行时间不取决于其代码中循环(或I / O,算术运算或其他任何事物)的数目,而取决于每个这些操作将被执行的次数。 在任何合理的程序中,这将取决于输入数据,如果不访问输入数据,您将什么也说不出来。

(如果确实有输入数据,则只需在分析器下运行该程序,即可查看花费了最多时间的部分。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM