计算程序运行时间 demo

currentTimeMillis与StopWatch 的时间差工具:

计算时间差(天,小时,分钟)博客
Java 实例 时间的处理demo博客

StopWatch

主要方法: 方法start():开始计时

stop():停止计时

suspend():暂停秒表

resume():恢复秒表

reset():重置秒表

split():设定split点

getSplitTime():获取时间,时间为从计时起点到最新设置的split点之间的时长

getTime():显示当前秒表时间,可以通过指定TimeUnit来指定返回的时间单位

import cn.hutool.core.date.StopWatch;

maven

 <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.3.2</version>
        </dependency>
package com.example.democrud.democurd.controller;


//import org.apache.commons.lang.time.StopWatch;


import cn.hutool.core.date.StopWatch;

public class demoTest {
    
    


    public static void main(String[] args) throws InterruptedException {
    
    


           currentTimeMillis();

        //   StopWatch();//多线程适用任务

        StopWatch01();//多线程适用任务  多线程执行demo


    }


    private static void StopWatch01() throws InterruptedException {
    
    
        // 创建一个 StopWatch 实例
        StopWatch sw = new StopWatch("实例");
// 开始计时
        sw.start("任务1");

        Thread.sleep(1000);

// 停止计时
        sw.stop();
        System.out.printf("任务1耗时:%d%s.\n", sw.getLastTaskTimeMillis(), "ms");

        sw.start("任务2");
        Thread.sleep(1100);
        sw.stop();

        System.out.printf("任务2耗时:%d%s.\n", sw.getLastTaskTimeMillis(), "ms");
        System.out.printf("任务数量:%s,总耗时:%ss.\n", sw.getTaskCount(), sw.getTotalTimeSeconds());


    }

   /* private static void StopWatch() {

        try{
            StopWatch stop=new StopWatch();
            //start
            stop.start();//开始计时
            Thread.sleep(1000);
            stop.split();//设置split点
            System.out.println("1==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
            Thread.sleep(500);
            stop.split();//设置split点
            System.out.println("2==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
            Thread.sleep(1000);
            stop.split();//设置split点
            System.out.println("3==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
            Thread.sleep(1000);
            stop.split();//设置split点
            System.out.println("4==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
            System.out.println("5==>时间为"+stop.getTime()+"毫秒");//getTime()统计从start到现在的计时
            //stop
            stop.stop();//停止计时
            Thread.sleep(1000);
            System.out.println("6==>时间为"+stop.getTime()+"毫秒");//getTime()统计从start到现在的计时
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }*/


    private static void currentTimeMillis() {
    
    
        long startTime = System.currentTimeMillis();

        try {
    
    
            Thread.sleep(10000L);
        } catch (InterruptedException e) {
    
    
            e.printStackTrace();
        }

       long endTime = System.currentTimeMillis();

        System.out.println("Main 运行时间 :" + (endTime-startTime)/1000+"秒");
    }


}



执行结果是:

Main 运行时间 :10秒
任务1耗时:999ms.
任务2耗时:1099ms.
任务数量:2,总耗时:2.098904701s.

Process finished with exit code 0

还有一个是引用的包不同调用的方法;

import org.apache.commons.lang.time.StopWatch;
package com.example.democrud.democurd.controller;


import org.apache.commons.lang.time.StopWatch;


//import cn.hutool.core.date.StopWatch;

public class demoTest {
    
    


    public static void main(String[] args) throws InterruptedException {
    
    


         //  currentTimeMillis();

           StopWatch();//多线程适用任务

      //  StopWatch01();//多线程适用任务  多线程执行demo


    }




    private static void StopWatch() {
    
    

        try{
    
    
            StopWatch stop=new StopWatch();
            //start
            stop.start();//开始计时
            Thread.sleep(1000);
            stop.split();//设置split点
            System.out.println("1==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
            Thread.sleep(500);
            stop.split();//设置split点
            System.out.println("2==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
            Thread.sleep(1000);
            stop.split();//设置split点
            System.out.println("3==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
            Thread.sleep(1000);
            stop.split();//设置split点
            System.out.println("4==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
            System.out.println("5==>时间为"+stop.getTime()+"毫秒");//getTime()统计从start到现在的计时
            //stop
            stop.stop();//停止计时
            Thread.sleep(1000);
            System.out.println("6==>时间为"+stop.getTime()+"毫秒");//getTime()统计从start到现在的计时
        } catch (InterruptedException e) {
    
    
            e.printStackTrace();
        }
    }



}






执行结果是

1==>时间为1001毫秒
2==>时间为1502毫秒
3==>时间为2502毫秒
4==>时间为3503毫秒
5==>时间为3503毫秒
6==>时间为3503毫秒

猜你喜欢

转载自blog.csdn.net/qq_42055933/article/details/126015001