【问题标题】:Find Most Frequently-used Java Methods in Eclipse Workspace在 Eclipse Workspace 中查找最常用的 Java 方法
【发布时间】:2012-02-06 15:41:38
【问题描述】:

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

我非常熟悉 CTRL-SHIFT-G 或 CTRL-G 的用法;一直使用它。我也熟悉 Call Hierarchy 视图。我正在寻找的结果可以描述为在 every method 上执行 Search > References > Workspace (CTRL-SHIFT-G)工作区中的每个类,每次都对结果数进行统计/计数,最终的可排序输出如下例所示。

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

例如,给定三个类,ClassAClassBClassC,我想要一个类似这样的摘要:

方法调用次数 ClassB.methodThatDoesSomethingMundane() 134 ClassC.methodThatDoesCoolStuff() 78 ClassC.methodThatDoesImportantThing() 71 ClassA.constructor() 63 ClassB.aDifferentBoringMethod() 37 ClassA.getSomething() 19 ... ETC ...

【问题讨论】:

  • 定义使用。你的意思是搜索那个?您的意思是代码最常调用特定的类/方法吗?什么?
  • 我会从最重要、最脆弱的东西开始。
  • @PattMauler:(因此评论不是答案)...我绝对记得“代码覆盖率”工具正是这样做的。现在,虽然典型的“代码覆盖率”工具只显示一个“运行”是否已经采取了路径,但我有 99.9% 的信心看到代码覆盖率工具还显示了调用哪些方法的频率。好久没用过代码覆盖工具说...
  • 是否有任何代码覆盖率或类似名称的工具可以在无需实际执行代码的情况下进行方法分析?我正在寻找的结果可以描述为对工作区中每个类中的每个方法执行 CTRL-SHIFT-G 并每次统计/计算结果数。
  • (我将编辑问题以包含此说明)

标签: java eclipse unit-testing search eclipse-plugin


【解决方案1】:

JArchitect,一个商业产品,似乎有一个有趣的metrics module

方法排名:MethodRank 值是通过在方法依赖关系图上应用 Google PageRank 算法来计算的。应用中心为 0.15 的同位,使得 MethodRank 的平均值为 1。

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

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

但我不认为如果你使用 Java 反射它会起作用。

【讨论】:

    【解决方案2】:

    您可以为此使用分析器(例如 VisualVM、jdk/bin/ 文件夹中的 jvisualvm.exe)。

    【讨论】:

    • 分析器如何帮助确定函数调用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2020-11-20
    • 1970-01-01
    相关资源
    最近更新 更多