【发布时间】:2010-09-23 01:19:00
【问题描述】:
对于一段特定的 Java 代码,我想测量:
- 执行时间(很可能是线程执行时间)
- 内存使用情况
- CPU 负载(具体归因于代码段)
我是一个相对的 Java 新手,不熟悉如何实现这一点。我被推荐给了JMX,但我不确定如何使用它,而且 JMX 对于我想要做的事情看起来有点“沉重”。
理想情况下,我想要一些可以告诉我想要测量什么的测量类,可以选择在代码段之前调用start() 方法,在之后调用stop() 方法。相关指标将记录到我指定的文件中。
例如:
import com.example.metricLogger;
metricLogger logger = new metricLogger();
logger.setLogPath(pathToLogFile);
logger.monitor(executionTime);
logger.monitor(memoryUsage);
logger.monitor(cpuLoad);
logger.start();
/* Code to be measured */
logger.stop();
在 Java 中是否有任何标准/通用/常规方法可以实现这一点?
此类测量仅用于一次性性能比较,因此我不寻找任何生产中的长期监控流程。
我很高兴被提及教程或外部示例,并且不希望在这里得到完整的答案。也就是说,如果可以实现上述简单的任何事情,那么一个现实的例子就会非常成功。
【问题讨论】:
标签: java performance monitoring jmx measurement