java 中stopwatch_StopWatch使用介绍「建议收藏」

java 中stopwatch_StopWatch使用介绍「建议收藏」StopWatch是Spring核心包中的一个工具类,它是一个简单的秒表工具,可以计时指定代码段的运行时间以及汇总这个运行时间,使用它可以隐藏使用System.currentTimeMillis(),提高应用程序代码的可读性并减少计算错误的可能性。注意事项StopWatch对象不是设计为线程安全的,并且不使用同步。使用场景一般是在开发过程中验证性能,而不是作为生产应用程序的一部分方法介绍//构…

大家好,又见面了,我是你们的朋友全栈君。

StopWatch是Spring核心包中的一个工具类,它是一个简单的秒表工具,可以计时指定代码段的运行时间以及汇总这个运行时间,使用它可以隐藏使用

System.currentTimeMillis() ,提高应用程序代码的可读性并减少计算错误的可能性。

注意事项

StopWatch对象不是设计为线程安全的,并且不使用同步。

使用场景

一般是在开发过程中验证性能,而不是作为生产应用程序的一部分

方法介绍

// 构建一个新的秒表,不开始任何任务。

public StopWatch()

//构造具有给定id的新秒表。不开始任何任务。

// 参数:id – 此秒表的标识符。当我们从多个秒表输出并需要区分它们时很方便。

public StopWatch(java.lang.String id)

//返回此秒表的ID。

public java.lang.String getId()

// 确定TaskInfo数组是否随着时间的推移而构建。当大量使用StopWatch时,将此设置为“false”,否则任务信息结构将消耗过多的内存。默认为“true”。

public void setKeepTaskList(boolean keepTaskList)

// 启动一个未命名的任务。如果stop() 调用或计时方法而不调用此方法,则结果未定义。

public void start();

// 启动命名任务。如果stop() 调用或计时方法而不调用此方法,则结果未定义。

// 参数: taskName – 要启动的任务的名称

public void start(java.lang.String taskName)

// 停止当前任务。如果在不调用至少一对start()/ stop()方法的情况下调用计时方法,则结果是不确定的 。

public void stop();

//返回秒表当前是否正在运行。

public boolean isRunning()

// 返回当前正在运行的任务的名称(如果有)。

@Nullable

public java.lang.String currentTaskName()

// 返回上一个任务所花费的时间。

public long getLastTaskTimeMillis();

// 返回上一个任务的名称。

public java.lang.String getLastTaskName()

// 将最后一个任务作为TaskInfo对象返回。

public StopWatch.TaskInfo getLastTaskInfo();

// 返回所有任务的总时间(以毫秒为单位)。

public long getTotalTimeMillis();

//返回所有任务的总时间(以秒为单位)。

public double getTotalTimeSeconds();

//返回定时任务的数量。

public int getTaskCount();

//返回执行任务的数据数组。

public StopWatch.TaskInfo [] getTaskInfo();

//返回总运行时间的简短描述。

public java.lang.String shortSummary();

// 返回一个字符串,其中包含描述所执行任务的表。

public java.lang.String prettyPrint();

//返回描述所有已执行任务的信息性字符串对于自定义报告

public java.lang.String toString();

实际应用

public class StopWatchTest {

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

StopWatch stopWatch = new StopWatch(“测试秒表”);

stopWatch.start(“暂停100毫秒”);

Thread.sleep(100 * 1);

stopWatch.stop();

stopWatch.start(“暂停200毫秒”);

Thread.sleep(100 * 2);

stopWatch.stop();

stopWatch.start(“暂停300毫秒”);

Thread.sleep(100 * 3);

stopWatch.stop();

stopWatch.setKeepTaskList(true); //是否构建TaskInfo信息

Arrays.stream(stopWatch.getTaskInfo()).forEach(sw ->

System.out.println(sw.getTaskName()+” “+

sw.getTimeMillis()+” “+sw.getTimeSeconds()));

// 在start()方法和stop()方法间时,isRunning()返回true

System.out.println(stopWatch.isRunning());

System.out.println(stopWatch.prettyPrint());//打印详细信息

System.out.println(stopWatch.shortSummary());//打印简要信息

}

}

打印效果

暂停100毫秒 110 0.11

暂停200毫秒 201 0.201

暂停300毫秒 310 0.31

false

StopWatch ‘测试秒表’: running time (millis) = 621

—————————————–

ms % Task name

—————————————–

00110 018% 暂停100毫秒

00201 032% 暂停200毫秒

00310 050% 暂停300毫秒

StopWatch ‘测试秒表’: running time (millis) = 621

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152428.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html文本框鼠标离开事件,html鼠标事件_文本框事件「建议收藏」

    html文本框鼠标离开事件,html鼠标事件_文本框事件「建议收藏」该楼层疑似违规已被系统折叠隐藏此楼查看此楼今天57号网络技术分享给大家介绍html鼠标事件,就是当前文本框获得焦点时,里面的原有文本清零。首先我们来看一看源代码运行后的效果图片:你也可以【点击预览】,看到我们真实的效果。下面是源代码,喜欢就支持一下吧:/p>Transitional//EN””http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition…

    2022年10月23日
  • linux抓包命令并生成文件_linux抓包指定端口

    linux抓包命令并生成文件_linux抓包指定端口tcpflow实际上也是一个抓包工具,这个抓包工具与tcpdump不同的是它是以流为单位显示数据内容,而cpdump以包为单位显示数据。我们平常会经常分析HTTP数据,用tcpflow会更便捷,且tcpflow看起来会更加直观些。#截取本机(192.168.31.147)和主机114.114.114.114之间的数据tcpdump-n-ieth0host192.168.31.147an…

    2022年8月22日
  • 什么是ESLint?「建议收藏」

    什么是ESLint?「建议收藏」在我们学习ESLint之前,我们先来了解一下什么是ESLint?什么是ESLint?官网上告诉我们,ESLint是一个用来识别ECMAScript/JavaScript并且按照规则给出报告的代码检测工具,哦,所以我们可以知道,ESLint就是一个工具,而且是一个用来检查代码的工具。代码检查是一种静态的分析,常用于寻找有问题的模式或者代码,并且不依赖于具体的编码风格。对大多数编程语言…

    2022年6月18日
  • 计算机存储单位的换算关系是_每个存储单位是变化长度吗

    计算机存储单位的换算关系是_每个存储单位是变化长度吗1TB=1024GB1GB=1024MB1MB=1024KB1KB=1024B1B=8b计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来

    2022年8月5日
  • linux下vi操作Found a swap file by the name

    linux下vi操作Found a swap file by the name

    2021年10月29日
  • shell的比较运算符

    算术运算符 +-*/%表示加减乘除和取余运算+=-=*=/=同C语言中的含义位操作符>>>=表示位左右移一位操作&&=|

    2021年12月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号