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

在Eclipse工作区中查找最常用的Java方法,java,eclipse,unit-testing,search,eclipse-plugin,Java,Eclipse,Unit Testing,Search,Eclipse Plugin,是否有Eclipse插件或其他工具或技术可以搜索整个Java项目(和/或整个工作区)并显示(列表/可排序格式)项目中所有公共方法的调用频率?那就是“什么代码在使用什么其他代码”最多 我非常熟悉CTRL-SHIFT-G或CTRL-G的用法;一直使用它。我还熟悉调用层次视图。我正在寻找的结果可以描述为对工作区中的每个类中的每个方法进行搜索>引用>工作区(CTRL-SHIFT-G),并每次统计/计算结果数量,最终的可排序输出如下面的示例所示 上面的概念是了解哪些类/方法得到了最多的使用(不是在运行时;

是否有Eclipse插件或其他工具或技术可以搜索整个Java项目(和/或整个工作区)并显示(列表/可排序格式)项目中所有公共方法的调用频率?那就是“什么代码在使用什么其他代码”最多

我非常熟悉CTRL-SHIFT-G或CTRL-G的用法;一直使用它。我还熟悉调用层次视图。我正在寻找的结果可以描述为对工作区中的每个类中的每个方法进行搜索>引用>工作区(CTRL-SHIFT-G),并每次统计/计算结果数量,最终的可排序输出如下面的示例所示

上面的概念是了解哪些类/方法得到了最多的使用(不是在运行时;在这个问题中是“使用”!=“执行”),以便在一个非常大的项目上优先进行单元测试。我想开始更多地使用JUnit(也就是说,一点也不想),找到最常用的方法似乎是一个很好的开始

例如,给定三个类,
ClassA
ClassB
ClassC
,我想要一个类似于以下内容的摘要:

Method Number of calls ClassB.methodThatDoesSomethingMundane() 134 ClassC.methodThatDoesCoolStuff() 78 ClassC.methodThatDoesImportantThing() 71 ClassA.constructor() 63 ClassB.aDifferentBoringMethod() 37 ClassA.getSomething() 19 ... etc ... 方法调用数 类B.不满足日常生活的方法134 类C.methodThatDoesCoolStuff()78 类C.Methodthat doesimportantthing()71 构造函数()63 ClassB.adInterfertBoringMethod()37 类a.getSomething()19 ... 等 您可以使用探查器(例如VisualVM,jdk/bin/folder中的jvisualvm.exe)来实现这一点。

,一种商业产品,似乎有一个有趣的功能:

方法等级:方法等级值通过在方法依赖关系图上应用Google PageRank算法来计算。应用中心0.15的同位符使其成为MethodRank的平均值为1

建议:MethodRank高的方法应该更仔细地测试,因为这种方法中的错误可能更具灾难性

我没有测试它,但值得一试


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

Define using。你是说找那个吗?您的意思是代码最常调用特定的类/方法吗?什么?我会从最重要、最脆弱的东西开始。@PattMauler:(没有答案,因此评论)。。。我肯定记得“代码覆盖率”工具正是这样做的。现在,虽然典型的“代码覆盖率”工具只显示一次“运行”是否走了一条路径,但我有99.9%的信心看到代码覆盖率工具也显示了调用哪些方法的频率。很长一段时间以来,我都没有使用过代码覆盖率工具,比如说……有没有代码覆盖率或类似命名的工具可以在不执行代码的情况下进行方法分析?我正在寻找的结果可以描述为对工作区中每个类中的每个方法执行CTRL-SHIFT-G,并每次统计/计算结果的数量。(我将编辑问题以包括此澄清)探查器如何帮助确定函数调用?