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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • STUN详解

    STUN详解STUN是一个简单的客户端-服务器协议。客户端发送一个请求到一台服务器,而服务器返回一个响应。有两种类型的请求:绑定请求(通过UDP发送)和共享密钥请求(发送TLS(通过TCP))。共享秘密请求服务器返回一个临时的用户名和密码。此用户名和密码用于在随后的绑定请求和绑定响应,身份验证和消息完整性的目的。STUN客户和STUN服务器之间可能有一个或多个NAT。

  • 抽象思维能力

    抽象思维能力世界上的物质纷繁复杂,眼花缭乱。人最大的特点是容易被眼睛看到的物像所吸引,而止步不前,不去深入思考内部深层次的原理。毕竟,进化了几百万年的人类过程,只要看到果实或者猎物就足够喂饱肚子了,谁去管果实

  • pytest skipif_pytest不是内部或外部命令

    pytest skipif_pytest不是内部或外部命令前言pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能Skip和xfail:处理那些不会成功的测试用例你可以对那些在某些特定平台上不能运行的测试用

  • hystrix实现服务降级的3种方式[通俗易懂]

    hystrix实现服务降级的3种方式[通俗易懂]1、hystrix是什么Hystrix是一款开源的容错插件,具有依赖隔离,系统容错降级等功能,这也是其最重要的两种用途,还有请求合并等功能2、为什么要进行隔离在实际工作中,尤其是分布式、微服务越来越普遍的今天,一个服务经常需要调用其他的服务,即RPC调用,而调用最多的方式还是通过http请求进行调用,这里面就有一个问题了,如果调用过程中,因为网络等原因,造成某个服务调用超时,如果没有熔断机制…

  • no information is available_no data available什么意思

    no information is available_no data available什么意思解决方案一、打开魔术棒二、output→BrowseInfoemation三、重新编译就可以了

  • babel转换es6_ideamaven依赖配置

    babel转换es6_ideamaven依赖配置用Babel-cli将ES6转ES5一、为什么要转ES5   虽然ES6非常好用,但并不是所有浏览器所有客户端都适应ES6的,降成ES5是为了更强的使用性。二、安装转换工具babel-cli1.第一步初始化文件夹(如果已经有package.json文件说明已经初始化过了,可以跳过)右键在文件夹在终端中打开,输入命令npminit-y或者cnpminit-y2.在终端继续输入命令cnpminstall–globalbabel-cli安装ba

发表回复

您的电子邮箱地址不会被公开。

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