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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

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

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