java记录程序执行时间之StopWatch

在日常写代码的过程中,通常会记录某一段程序的运行时间,使用的方式是System.currentTimeMillis()。

Spring也自带了一种方式StopWatch,使用起来也比较简单。

共分为四步:创建对象,开始记录执行时间,结束记录执行时间,获取执行的总时间。

package com.zys.example;

import org.springframework.util.StopWatch;

import java.util.ArrayList;
import java.util.List;

public class AppMain {
    public static void main(String[] args) {
        StopWatch watch = new StopWatch();
        watch.start();
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 100000; i++) {
            list.add("哈哈" + (i + 1));
        }
        watch.stop();
        System.out.println("用时(ms):" + watch.getTotalTimeMillis());//26
    }


}

上述代码是记录向集合中插入10万条数据所需要的时间,最后打印的结果是26ms,此时间是不固定的。相比于System.currentTimeMillis()无需计算两个时间差,显得更为方便。

除此之外,还可以记录多个任务一共执行的时间,需要指定任务名称:

public static void main(String[] args) throws InterruptedException {
        StopWatch watch = new StopWatch();
        watch.start("task1");
        Thread.sleep(200);
        watch.stop();
        watch.start("task2");
        Thread.sleep(5000);
        watch.stop();
        watch.start("task3");
        Thread.sleep(10);
        watch.stop();
        System.out.println("任务数用时:" + watch.getTotalTimeMillis() + " ms");
        System.out.println("任务数:" + watch.getTaskCount());
        System.out.println("任务执行的百分比:" + watch.prettyPrint());
    }

执行结果如下:

java记录程序执行时间之StopWatch

上一篇:vue中的计算属性和侦听器


下一篇:VS opencv Mat对象像素查看插件:Image Watch(ImageWatch)