代码执行时间

server/2024/10/18 19:25:44/

文章目录

  • System.currentTimeMillis
  • System.nanoTime
  • new Date
  • Spring StopWatch
    • 简单的运行时间
    • 多个运行时间
    • StopWatch. TaskInfo
    • Spring StopWatch其它API
  • commons-lang3 StopWatch

多种获取代码运行时长的方法,

System.currentTimeMillis

通过java内置的方法System.currentTimeMillis()获取毫秒时间戳,然后通过代码结束时间减去代码开始时间,获取运行时长

java">    @Testpublic void test2() throws InterruptedException {long startLong = System.currentTimeMillis();Thread.sleep(1000);long endLong = System.currentTimeMillis();System.out.println(endLong-startLong);}

System.nanoTime

通过java内置的方法System.nanoTime()获取纳秒时间戳,然后通过代码结束时间减去代码开始时间,获取运行时长.

java">    @Testpublic void test2() throws InterruptedException {// 开始时间long start = System.nanoTime();// 执行时间(1s)Thread.sleep(1000);// 结束时间long end = System.nanoTime();// 计算执行时间System.out.printf("执行时长:%d 纳秒.", (end - start));}

new Date

这个是先通过Date获取时间,然后通过Date.getTime()获取时间戳,然后通过代码结束时间减去代码开始时间,获取运行时长

java">    @Testpublic void test2() throws InterruptedException {// 开始时间Date start = new Date();// 执行时间(1s)Thread.sleep(1000);// 结束时间Date end = new Date();//  统计执行时间(毫秒)System.out.printf("执行时长:%d 毫秒." , (end.getTime() - start.getTime()));}

Spring StopWatch

spring-framework提供了的StopWatch类,提供了丰富的方法,可以获取到单个、多个等运行时间

简单的运行时间

java">    @Testpublic void test3() throws InterruptedException {StopWatch sw = new StopWatch();//开始监控sw.start();Thread.sleep(1000);//停止监控sw.stop();//获取总耗时System.out.println(sw.getTotalTimeMillis());
}

多个运行时间

java">    @Testpublic void test2() throws InterruptedException {StopWatch sw = new StopWatch();sw.start("A");Thread.sleep(500);sw.stop();sw.start("B");Thread.sleep(300);sw.stop();sw.start("C");Thread.sleep(200);sw.stop();//表格形式输出各项任务耗时System.out.println(sw.prettyPrint());//获取所有任务总耗时System.out.println(sw.getTotalTimeMillis());}

StopWatch. TaskInfo

获取最后一个任务的信息,返回一个StopWatch. TaskInfo静态内部类,有各种方法

java">    @Testpublic void test3() throws InterruptedException {StopWatch sw = new StopWatch();//开始监控sw.start();Thread.sleep(1000);//停止监控sw.stop();//获取总耗时System.out.println(sw.getTotalTimeMillis());//获取最后一个任务的信息,返回一个StopWatch. TaskInfo静态内部类,有各种方法System.out.println(sw.lastTaskInfo().getTimeSeconds());}

在这里插入图片描述

Spring StopWatch其它API

  • getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒的方法
  • prettyPrint() 优雅的格式打印结果,表格形式
  • shortSummary() 返回简短的总耗时描述
  • getTaskCount() 返回统计时间任务的数量
  • getLastTaskInfo().getTaskName() 返回最后一个任务TaskInfo对象的名称
  • 更多API:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/StopWatch.html

commons-lang3 StopWatch

统计单个的执行时长,可以获取以秒、毫秒、纳秒为单位的执行时长

  • 引入依赖
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.10</version>
</dependency>
  • 测试
java">    @Testpublic void test3() throws InterruptedException {StopWatch stopWatch = new StopWatch();// 开始时间stopWatch.start();// 执行时间(1s)Thread.sleep(1000);// 结束时间stopWatch.stop();// 统计执行时间(秒)System.out.println("执行时长:" + stopWatch.getTime(TimeUnit.SECONDS) + " 秒.");// 统计执行时间(毫秒)System.out.println("执行时长:" + stopWatch.getTime(TimeUnit.MILLISECONDS) + " 毫秒.");// 统计执行时间(纳秒)System.out.println("执行时长:" + stopWatch.getTime(TimeUnit.NANOSECONDS) + " 纳秒.");
}

http://www.ppmy.cn/server/131185.html

相关文章

详解安卓和IOS的唤起APP的机制,包括第三方平台的唤起方法比如微信

网页唤起APP是一种常见的跨平台交互方式&#xff0c;它允许用户从网页直接跳转到移动应用程序。 这种技术广泛应用于各种场景&#xff0c;比如让用户在浏览器中点击链接后直接打开某个应用&#xff0c;或者从网页引导用户下载安装应用。实现这一功能主要依赖于URL Scheme、Univ…

网络通信——流量与路由(万字解读)

前言:流量控制与路由更新控制 如何控制网络流量可达性? 方案一:可通过修改路由条目(即对接收和发布的路由进行过滤)来控制流量可达性,这种方式称为路由策略。 方案二:可直接通过依据用户制定的策略进行转发,且该策略优于路由表转发,这种方式称为策略路由。 (1)什么…

无人机之交互系统篇

一、系统构成 无人机交互系统通常由多个子系统组成&#xff0c;包括但不限于&#xff1a; 多模式人机交互装置&#xff1a;这是人机交互系统的基础层&#xff0c;通常包括计算机、局域网、传感器等设备&#xff0c;用于实现操作员与无人机之间的数据交互和指令传递。例如&…

前端框架对比与选择:详尽分析

1. 引言 随着互联网技术的飞速发展,前端开发技术也得到了迅猛提升。无论是大型企业还是中小型开发团队,使用前端框架来简化开发过程、提升开发效率已成为一种普遍现象。如今,市场上有众多的前端框架可供选择,如React、Vue.js、Angular等,如何在这些框架中进行选择成为了开…

vr眼镜? vr视频? 如何使用? -----结合亲身经历稍微介绍一下

废话不多说&#xff0c;直接先说我的实操体验。 &#xff08;我买的型号是&#xff1a;千幻魔镜G04 属于便宜的了&#xff09; 如何用vr眼镜看vr视频 1.准备好vr视频&#xff0c;就是360视频。 2.手机上下载可以播放360视频的软件&#xff0c;播放该视频。 3.把手机放到vr…

科大讯飞大数据面试题及参考答案

数仓分层的理解及其好处,每一层的作用是什么? 数据仓库分层是一种将数据按照不同的逻辑层次进行组织和管理的方法。通常分为源数据层、贴源数据层、数据仓库层、数据集市层和应用层等。 源数据层(ODS层)是数据的原始来源,包括各种业务系统、数据库、文件等。这一层的数据通…

腾讯云视立方TRTCCalling Web 相关

基础问题 什么是 TRTCCalling&#xff1f; TRTCCalling 是在 TRTC 和 TIM 的基础上诞生的一款快速集成的音视频的解决方案。支持1v1和多人视频/语音通话。 TRTCCalling 是否支持接受 roomID 为字符串? roomID 可以 string&#xff0c;但只限于数字字符串。 环境问题 Web …

数据分析库Pandas

一、认识Pandas数据分析库 Pandas是一个功能强大的数据分析库&#xff0c;它提供了丰富的数据结构和函数来处理和分析表格数据。在处理类似您提供的Excel文件时&#xff0c;首先需要导入Pandas库并读取数据&#xff0c;然后进行数据清洗和预处理&#xff0c;最后进行数据分析和…