如何测试java应用程序的性能瓶颈?

时间:2008-09-01 13:22:19

标签: java performance

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

我可以使用一些工具/技术来帮助我吗?

6 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:5)

我常常使用Java -Xprof感到高兴。这将为您提供代码在大部分时间内花费的函数的排序列表。

答案 2 :(得分:3)

如果您使用的是Java 6,则可以使用supplied monitoring tools

答案 3 :(得分:0)

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

文档Here。它将允许您查找热点,内存泄漏等等。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

正如我们从How can I profile C++ code running in Linux?看到的,最具统计意义的方法是使用堆栈分析器。

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

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