当前位置: 首页 > article >正文

StopWath,apache commons lang3 包下的一个任务执行时间监视器的使用

StopWath是 apache commons lang3 包下的一个任务执行时间监视器,与我们平时常用的秒表的行为比较类似,我们先看一下其中的一些重要方法:

图片

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>    
    <groupId>org.apache.commons</groupId>    
    <artifactId>commons-lang3</artifactId>    
    <version>3.6</version>
</dependency>

Apache提供的这个任务执行监视器功能丰富强大,灵活性强,如下经典实用案例:

public static void main(String[] args) throws InterruptedException {    
    //创建后立即start,常用    
    StopWatch watch = StopWatch.createStarted();
    // StopWatch watch = new StopWatch();    
    // watch.start();    Thread.sleep(1000);    
    System.out.println(watch.getTime());    
    System.out.println("统计从开始到现在运行时间:" + watch.getTime() + "ms");
    Thread.sleep(1000);    
    watch.split();    
    System.out.println("从start到此刻为止的时间:" + watch.getTime());   
     System.out.println("从开始到第一个切入点运行时间:" + watch.getSplitTime());

    Thread.sleep(1000);    
    watch.split();    
    System.out.println("从开始到第二个切入点运行时间:" + watch.getSplitTime());    
    // 复位后, 重新计时    
    watch.reset();    
    watch.start();    
    Thread.sleep(1000);    
    System.out.println("重新开始后到当前运行时间是:" + watch.getTime());    
    // 暂停 与 恢复    
    watch.suspend();    
    System.out.println("暂停2秒钟");    
    Thread.sleep(2000);    
    // 上面suspend,这里要想重新统计,需要恢复一下   
     watch.resume();    
    System.out.println("恢复后执行的时间是:" + watch.getTime());
    Thread.sleep(1000);    
    watch.stop();
    System.out.println("花费的时间》》" + watch.getTime() + "ms");    
    // 直接转成s    
    System.out.println("花费的时间》》" + watch.getTime(TimeUnit.SECONDS) + "s");
}


http://www.kler.cn/a/322409.html

相关文章:

  • 深度学习的实践层面
  • 一个交替优化问题的求解
  • Git 分⽀规范 Git Flow 模型
  • kubernetes如何配置默认存储
  • 掌握Golang中的数据竞争检测:runtime/race包全面教程
  • A037-基于Spring Boot的二手物品交易的设计与实现
  • 起号半个月GMV 1300W+,视频号这个赛道真香!
  • CMU 10423 Generative AI:lec7、8、9(专题2:一张图理解diffusion model结构、代码实现和效果)
  • 论文阅读 | 一种基于潜在向量优化的可证明安全的图像隐写方法(TMM 2023)
  • 端上自动化测试平台实践
  • Go 实现:椭圆曲线数字签名算法ECDSA
  • 50道渗透测试面试题,全懂绝对是高手
  • 边裁员边收购,思科逐渐变身软件并购之王
  • Java 入门指南:并发设计模式 —— 两端终止模式
  • C++之STL—常用排序算法
  • JavaScript 操作 DOM元素CSS 样式的几种方法
  • MATLAB软件开发通用控制的软件架构参考
  • (JAVA)浅尝关于 “栈” 数据结构
  • Android 增加宏开关控制android.bp
  • MySQL查询语句优化
  • DataGrip远程连接Hive
  • Python中列表常用方法
  • C语言 15 预处理
  • vue3 TagInput 实现
  • 监控易监测对象及指标之:Kubernetes(K8s)集群的全方位监控策略
  • webpack与vite读取base64图片