利用StopWatch类监控Java代码执行时间并分析性能

springframework中的StopWatch类可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。一般用来测量代码执行所用的时间或者计算性能数据,在优化代码性能上可以使用Stopwatch来测量时间。common.lang包里面也有这个工具,用法类似,但是不能任务名称,查看结果不方便。

示例如下

@Test
public void test7() throws Exception {
    StopWatch watch = new StopWatch("测试运行时间");
    watch.start("任务1");
    TeaPersonCommentModel one = new TeaPersonCommentModel();
    one.setId("1");
    one.setContent("拼语1");
    watch.stop();
    watch.start("任务2");
    List<TeaPersonCommentModel> test = Lists.newArrayList();
    Optional<List<TeaPersonCommentModel>> testOptionl = Optional.ofNullable(test);
    watch.stop();
    System.out.println(watch.prettyPrint());
}

执行结果如下:

StopWatch '测试运行时间': running time (millis) = 15
-----------------------------------------
ms     %     Task name
-----------------------------------------
00000  000%  任务1
00015  100%  任务2

三列分别为监控代码段的花费时间(毫秒)、百分比、名称。可以很直观看出每段代码的运行时间以及所占比分比,帮助我们快速找到主要性能问题

原文地址:https://www.cnblogs.com/xieshuang/p/10082756.html