5

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

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

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

产生的结果在某种程度上应该是有用的,但它们不一定是工业强度

类似的问题:

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

4

4 回答 4

2

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

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

于 2009-11-06T10:50:43.387 回答
2

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

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

于 2009-11-06T10:33:25.117 回答
0

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

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

于 2009-11-06T11:02:58.767 回答
0

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

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

于 2009-11-06T10:35:35.573 回答