在Eclipse工作空间中查找最常用的Java方法

3
是否有一种Eclipse插件或其他工具或技术,可以搜索整个Java项目(和/或整个工作区),并以列表/可排序格式显示项目中所有公共方法的调用频率?即“什么代码使用最多的其他代码”?
我非常熟悉CTRL-SHIFT-G或CTRL-G的用法;一直在使用它。我也熟悉Call Hierarchy视图。我要找的结果可以描述为在工作区中对每个类中的每个方法执行“搜索>引用>工作区”(CTRL-SHIFT-G),并在每次计数/统计结果时,生成最终的可排序输出,如下面的示例。
上述概念是为了了解哪些类/方法被最多使用(不是在运行时;在这个问题中,“使用”!=“执行”),以便在一个非常大的项目中优先进行单元测试。我想开始更多地使用JUnit(比根本不使用更多),找到最常用的方法似乎是一个好的起点。
例如,给定三个类ClassA、ClassB和ClassC,我希望得到类似于以下摘要:
方法 调用次数 ClassB.methodThatDoesSomethingMundane() 134 ClassC.methodThatDoesCoolStuff() 78 ClassC.methodThatDoesImportantThing() 71 ClassA.constructor() 63 ClassB.aDifferentBoringMethod() 37 ClassA.getSomething() 19 ...等等...

1
定义 using。你是指搜索它吗?你是指代码最常调用特定的类/方法吗?什么意思? - adarshr
我会从最重要、最脆弱的部分开始。 - Dave Newton
@PattMauler:*(这不是答案,因此是评论)*…我绝对记得“代码覆盖率”工具确实可以做到这一点。虽然典型的“代码覆盖率”工具只会显示是否采用了某个路径,但我99.9%地确信我曾经看过代码覆盖率工具,它们也显示调用了哪些方法以及调用的频率如何。不过,很长时间我都没有使用过代码覆盖率工具了... - TacticalCoder
有没有任何代码覆盖率或类似的工具,可以在不实际执行代码的情况下进行方法分析?我要寻找的结果可以描述为在工作区中的每个类的每个方法上执行CTRL-SHIFT-G,并每次计算/统计结果的数量。 - PattMauler
请提供需要翻译的英文内容。 - PattMauler
2个回答

2
JArchitect,一个商业产品,似乎有一个有趣的指标模块

方法排名:通过将 Google PageRank 算法应用于方法依赖关系图来计算 MethodRank 值。对于使 MethodRank 的平均值为 1,应用了以中心点 0.15 为中心的同形变换。

建议:高 MethodRank 值的方法应该更加小心地进行测试,因为这些方法中的错误可能会更加严重。

我没有测试过,但值得一试。

但是,如果您使用 Java 反射,我认为它不起作用。


1
你可以使用性能分析器(例如VisualVM,jdk/bin/文件夹中的jvisualvm.exe)来实现这一点。

一个分析器如何帮助确定函数调用? - yolob 21

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接