【问题标题】:What are some interesting, free, open-source Dynamic Analysis tools for Java? [closed]有哪些有趣的、免费的、开源的 Java 动态分析工具? [关闭]
【发布时间】:2010-12-13 18:57:14
【问题描述】:

我正在寻找一些有趣的动态分析器来使用和报告大学作业。工具应该是:

  • 开源(所以我可以向他们学习)
  • 免费(包括演讲和啤酒,因为我希望能够分享结果,而且我很吝啬)
  • 适用于 Java(源代码或字节码)

这包括但不限于性能分析器。他们可以执行任何类型的分析,只要它是动态的,例如代码覆盖率、多线程正确性。

产生的结果在某些方面应该是有用的,但它们不一定是工业实力

类似的问题:

那么有哪些有趣的、免费的、开源的 Java 动态分析工具呢?

【问题讨论】:

    标签: java open-source bytecode dynamic-analysis


    【解决方案1】:

    我以前使用过一个名为 JRat 的性能分析器。

    作为 Java 代理运行并报告统计信息,例如在特定方法中花费的时间。

    【讨论】:

      【解决方案2】:

      查看Glassbox自动诊断常见问题的 Java 应用程序故障排除代理。 Glassbox 作为一个 war 文件部署到您的应用服务器,然后使用 AspectJ 加载时间编织来监控应用程序组件和其他工件,以识别远程调用过多或失败、查询缓慢、数据库查询过多、线程争用甚至是什么请求等问题参数导致失败。

      Glassbox 通过使用方面来跟踪组件交互,以非侵入方式监控应用程序。我们还监控内置 JMX 数据,特别是在 Java 5 VM 上,我们对线程数据进行采样(默认情况下每 100 毫秒)。在处理请求时,我们会总结值得注意的事件,例如花费的时间以及使事情变慢或失败所涉及的参数。我们还检测用于报告的更高级别的操作(例如 Struts 操作或 Spring 控制器)。然后,我们的 AJAX Web 客户端通过对被监控机器的操作提供状态摘要,并根据请求生成更详细的分析。 Glassbox 允许监控服务器集群:Web 应用程序使用 JMX Remote 或直接 RMI 来访问来自远程服务器的数据。我们还提供对较低级别汇总统计信息的 JMX 远程访问。

      【讨论】:

      • +1 一个有趣的工具。您是否碰巧知道它是否受限于 Web 应用程序?
      • Glassbox 是一个 WAR,因此它必须部署在应用服务器中,但它可以监控 JMS 和 EJB 等资源。所以,不,它不限于 Web 应用程序。
      • 请问这可能是一个愚蠢的问题,它可以分析任何给定的 Java 程序,比如 Swing 应用程序吗?它拥有很多功能,但我不能说该网站选择不提及基本内容,或者它是否没有能力。
      • 不,它只能分析在容器内运行的东西,即服务器端应用程序。
      【解决方案3】:

      我发现 Yourkit 是一个非常了不起的 java 分析器。它进行了精彩的热点分析和内存分析。我用它发现了许多内存泄漏以及许多优化。

      它还有一个不错的 Eclipse 集成插件(如果这是你的包的话)

      【讨论】:

      • Yourkit 不是免费的,也不是开源的。虽然它确实有一个评估期。
      • 啊,没有发现这个问题。不过,它是一个很棒的工具,无论如何都值得考虑。
      【解决方案4】:

      CoberturaEmma 将执行代码覆盖率分析。

      在多线程正确性方面,FindBugs 会做一些。但是它执行静态分析。即不是,而程序正在运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-13
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 2011-01-31
        • 2010-09-17
        • 2013-11-06
        • 1970-01-01
        相关资源
        最近更新 更多