当前位置:网站首页>计算程序运行时间 demo
计算程序运行时间 demo
2022-07-29 06:46:00 【你若不离不弃,我必生死相依】
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毫秒
边栏推荐
- Vite3.0 has been released, can you still roll it (list of new features)
- 后缀自动机(SAM)讲解 + Luogu p3804【模板】后缀自动机 (SAM)
- 【Redis】Redis开发规范与注意事项
- Leetcode 879. profit plan
- 太空射击第17课: Game Over (結束)
- CAN&CANFD综合测试分析软件LKMaster与PCAN-Explorer 6分析软件的优势对比
- 【OpenGL】着色器(Shader)的使用
- Variables and encryption in ansible
- gin 服务退出
- ETL为什么经常变成ELT甚至LET?
猜你喜欢

Personal blog system (with source code)

用户列表 圆形头像并跟随小板块

MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)

城市花样精~侬好!DESIGN#可视化电台即将开播

Flink real time warehouse DWD layer (traffic domain) template code

Operator3-设计一个operator

DM data guard cluster setup

MySQL----多表查询

SQL优化

Improved Pillar with Fine-grained Feature for 3D Object Detection论文笔记
随机推荐
Comparison of advantages between can & canfd integrated test analysis software lkmaster and PCA Explorer 6 analysis software
win11VMware打开虚拟机就蓝屏重启以及启动不了的解决方案
LeetCode 879. 盈利计划
Cvpr2021 | multi view stereo matching based on self supervised learning (cvpr2021)
【charles日常问题】开启charles,使用不了钉钉
Student status management system based on C language design
Nodejs安装教程
gin 路由,参数,输出
ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
0 8 动态规划(Dynamic Programming)
H3C_ Using setting default static routing priority to realize the active and standby function of export dual lines
Revolution of game assets
OCR光学字符识别方法汇总
Flink real-time warehouse DWD layer (order placing multiple tables to realize join operation) template code
Explanation of suffix automata (SAM) + Luogu p3804 [template] suffix automata (SAM)
fillder使用
SpingBoot整合Quartz框架实现动态定时任务(支持实时增删改查任务)
【Redis】Redis开发规范与注意事项
上采样之反卷积操作
H3C_利用设置缺省静态路由优先级实现出口双线路的主备功能