Java语言统计

时间:2014-10-23 02:37:10

标签: java parsing

我有兴趣收集一些我可以访问的大量Java代码的统计信息。我感兴趣的一些统计数据可能包括使用某些方法/类的频率,导入某些包的频率等等。

我的第一个想法是使用javaparser,但该库只支持Java 1.5,而且我的大部分代码都是1.6或更高。

是否有一个库可以从某些Java代码中给我一个准确的AST(也就是说,我能以某种方式向javac询问吗?),或者是否有更好的方法来解决这个问题(也许是检查字节码)? / p>

1 个答案:

答案 0 :(得分:0)

Dunno关于准确的AST,但你当然可以使用像ASM或BCEL这样的包来读取字节码,并且扫描这些数据结构以进行函数调用将是相当简单的。当然,这可能是在进行了一些早期优化之后,因此它可能无法直接反映来源......而且它在JIT之前,所以它可能无法直接反映实际运行的内容。

另一个解决方案是在分析器的控制下运行代码,这可以为您提供从不同位置调用的相对或绝对频率。

这些都不会为您提供进口数量 - 这纯粹是一种语法糖细节。但出于同样的原因,我并不认为这实际上是一个有意义的数字。