11

我正在审查一个大型 Java 应用程序,看看是否存在任何性能瓶颈。真正的问题是我无法确定任何单个模块的性能问题。整个应用程序很慢。

有什么工具/技术可以帮助我解决这个问题吗?

4

6 回答 6

8

尝试对正在运行的代码使用分析器。它应该可以帮助您识别瓶颈。尝试jprofilerNetbeans 分析器

于 2008-09-01T13:25:22.100 回答
6

我经常很高兴使用Java -Xprof. 这为您提供了代码花费大部分时间的函数的排序列表。

于 2008-09-02T08:56:15.563 回答
3

如果您在 Java 6 上运行,则可以使用提供的监控工具

于 2008-09-01T13:30:25.240 回答
0

出于测试/开发目的,您可以从该站点免费下载 Oracle JRockit Mission Control 。(需要登录,但可以使用任何电子邮件地址设置帐户)

文档在这里。它将允许您找到热点、内存泄漏等等。

于 2008-09-02T08:50:47.337 回答
0

YourKit是一个优秀的 java 分析器(不是免费的)。

于 2013-03-12T15:57:28.103 回答
0

正如我们从 如何分析在 Linux 中运行的 C++ 代码中看到的那样?,最具有统计意义的方法是使用堆栈分析器。

好吧,Java 在 JVM 中运行,因此获得对 C 代码有用的堆栈对我们没有用(它会获得 JVM 的东西,而不是您的代码)。幸运的是,Java 有jstackhttp://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstack.html

它会给你一堆线程,比如 GarbageCollector。不用担心这些,只要看看你的线程在哪里。

于 2013-03-12T16:03:36.990 回答