Guava之Stopwatch「建议收藏」

Guava之Stopwatch「建议收藏」Guava之Stopwatch计时器Stopwatch用来计算经过的时间(精确到纳秒)。这个类比调用System.nanoTime()优势在于:性能表现形式更丰富一、类声明以下是com.google.common.base.Stopwatch类的声明:publicfinalclassStopwatchextendsObject二、类方法方法类型方法…

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

Guava之Stopwatch 计时器

Stopwatch用来计算经过的时间(精确到纳秒)。
这个类比调用System.nanoTime()优势在于:

  • 性能
  • 表现形式更丰富

一、类声明

以下是 com.google.common.base.Stopwatch 类的声明:

public final class Stopwatch extends Object

二、类方法

方法类型 方法描述
static Stopwatch createStarted()
创建启动一个新的stopwatch对象,用的是System.nanoTime()作为时间资源。
static Stopwatch createStarted(Ticker ticker)
创建启动一个新的stopwatch对象,用的是特定的时间资源。
static Stopwatch createUnstarted()
创建(但不启动)一个新的stopwatch对象,用的是System.nanoTime()作为时间资源。
static Stopwatch createUnstarted(Ticker ticker)
创建(但不启动)一个新的stopwatch对象,用的是特定的时间资源。
Duration elapsed()
返回将此秒表上显示的当前经过时间作为持续时间.
long elapsed(TimeUnit desiredUnit)
用特定的格式返回这个stopwatch经过的时间.
boolean isRunning()
如果start方法被调用。stop方法还没有调用。返回真.
Stopwatch reset()
把stopwatch经过的时间设置为零,状态设置为停止.
Stopwatch start()
启动 stopwatch.
Stopwatch stop()
停止stopwatch,读取的话将会返回经历过的时间.
String toString()
返回字符串形式的elapsed time.

三、测试类

public class StopwatchDemo { 

@Test
public void test1() throws Exception { 

String orderNo = "12345678";
System.out.println("订单 [{" + orderNo + "}] 开始处理");
Stopwatch stopwatch = Stopwatch.createStarted();
TimeUnit.SECONDS.sleep(1);  // 1秒处理时间
System.out.println("订单 [{" + orderNo + "}] 处理完成,耗时 [{" + stopwatch.stop() + "}]");
}
@Test
public void test2() throws Exception { 

// 创建stopwatch并开始计时
Stopwatch stopwatch = Stopwatch.createStarted();
Thread.sleep(1980);
// 以秒打印从计时开始至现在的所用时间,向下取整
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 1
// 停止计时
stopwatch.stop();
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 1
// 再次计时
stopwatch.start();
Thread.sleep(100);
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS)); // 2
// 重置并开始
stopwatch.reset().start();
Thread.sleep(1030);
// 检查是否运行
System.out.println(stopwatch.isRunning()); // true
long millis = stopwatch.elapsed(TimeUnit.MILLISECONDS); // 1034
System.out.println(millis);
// 打印
System.out.println(stopwatch.toString()); // 1.034 s
}
public static void main(String[] args) throws InterruptedException { 

// 创建自动start的计时器
Stopwatch watch = Stopwatch.createStarted();
Thread.sleep(1000L);
long time = watch.elapsed(TimeUnit.MILLISECONDS);
System.out.println("代码执行时长:" + time);
watch.reset();
watch.start();
Thread.sleep(500L);
time = watch.elapsed(TimeUnit.MILLISECONDS);
System.out.println("代码执行时长:" + time);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

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

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

(0)


相关推荐

  • linux中解压rar文件

    linux中解压rar文件linux平台默认是不支持RAR文件的解压,需要安装linux版本的RAR压缩软件,下载地址为:http://www.rarlab.com/download.htm下载之后进行解压之后,进入rar目录,运行make指令进行安装:[root@localhostrar]#lsacknow.txtlicense.txtorder.htmrarfiles.lstrar.txt

  • phpstorm最新激活码【中文破解版】「建议收藏」

    (phpstorm最新激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • EmguCv模板匹配[通俗易懂]

    模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。先贴上简陋的界面图  代码:Matsrc=newImage<Bgr,byte>(ib_o…

  • python变量命名规则

    python变量命名规则在Python中,变量标记或指向一个值。当遇到变量时,Python将其替换为指向值。>>>cost=2.99>>>.1*cost0.29900000000000

  • 传奇sf架设服务器_传奇怎么架设服务器

    传奇sf架设服务器_传奇怎么架设服务器传世SF私服搭建架设教程下载!传奇世界私服搭建教程2017是传世SF私服搭建教程!提供传奇世界h5一键服务端商业版+架设教程-服务器端!传世SF私服游戏介绍传奇世界单机版,小编第一次接触传奇世界是在03年,过去这么多年,发现这款经典游戏竟然还有生命力,在这里给大家整合了网友提供的最新单机版,辅助大家回味高中时代那些青涩的回忆。此单机版很给力。根据官网提供的版本制作,拥有全部的最新地图以及技能怎…

  • git取消跟踪已版本控制的文件

    git取消跟踪已版本控制的文件

    2021年11月22日

发表回复

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

评论列表(1条)

  • Java03
    Java03 2022年10月11日 上午9:28

    你说StopWatch比System.nanoTime()功能丰富我能理解,但你说StopWatch比nanotime性能更优我确实不太理解,StopWatch底层不还是用的System.nanoTime()吗,为什么性能更优呢?

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