测量代码段的 Java 执行时间、内存使用情况和 CPU 负载
对于 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中是否有任何标准/通用/常规的方法来实现这一目标?
此类测量用于一次性性能比较,因此我不打算寻找任何生产中的长期监视过程。
我非常乐意被推荐给教程或外部示例,并且不期望在这里得到完整的答案。也就是说,如果像上面这样简单的事情可以实现,那么一个现实的例子将非常好。