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

标签 java performance hadoop jar

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

最佳答案

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

(如果您确实有输入数据,则可以简单地在分析器下运行该程序,并查看其中花费最多时间的部分。)

关于java - 如何静态分析jar包(map-reduce应用程序)并提取一些影响执行时间的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49217322/

相关文章:

java - Kotlin 是否打破了封装规则?

python - R 中是否有等效(或更快)版本的 numpy.binCount 用于基于多个 bin 求和值?

hadoop - hive 分组者包含重复结果

hadoop - Hadoop Standalone 和 Pseudodistributed 模式下的 DataFlow 区别?

java - 获取与 POJO 变量的最大值匹配的所有 POJO 项

Java注解处理基础

Java Runtime.getRuntime().exec ("ipconfig/release");返回错误?

javascript - 使用 $(document).on( 'click' , ,,) 的任何缺点

c++ - 在这种情况下,是否有比 if-else 更快的替代方案?

c# - 我尝试列出Hortonworks webhdfs,它将使用curl命令在Hortonworks控制台上正常工作,但不能在C#中列出所有文件夹