我有一个CPU密集型多线程Java应用程序,我正在寻找在运行时测量其性能的方法(对自动化很有用)。我尝试了几个选项
System.currentTimeMillis();
System.nanoTime();
ThreadMXBean.getThreadCPUTime();
前两个测量实时。最后一个测量只有一个线程的CPU时间。我想测量该进程生成的所有线程的CPU时间。
在复活旧机器并专门用于此任务之前,我想看看我现在有哪些选择。
我运行Linux并且平台相关的解决方案是可以接受的,但最不可取。
答案 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。 它有很多性能探测器可以帮助您获得所需的一切。