如何衡量Java应用程序的性能?

时间:2010-09-23 09:23:15

标签: java performance

我有一个CPU密集型多线程Java应用程序,我正在寻找在运行时测量其性能的方法(对自动化很有用)。我尝试了几个选项

System.currentTimeMillis();
System.nanoTime();
ThreadMXBean.getThreadCPUTime();

前两个测量实时。最后一个测量只有一个线程的CPU时间。我想测量该进程生成的所有线程的CPU时间。

在复活旧机器并专门用于此任务之前,我想看看我现在有哪些选择。

我运行Linux并且平台相关的解决方案是可以接受的,但最不可取。

2 个答案:

答案 0 :(得分:11)

尝试perf4j:http://perf4j.codehaus.org/ 我建议将它与AOP一起使用,但这不是必须的。有关AOP的详细信息,请参阅http://perf4j.codehaus.org/devguide.html#Using_Spring_AOP_to_Integrate_Timing_Aspects

答案 1 :(得分:2)

尝试使用Dtrace启用JVM。 它有很多性能探测器可以帮助您获得所需的一切。