你还在用System.currentTimeMillis()打印代码执行时间?

2023-11-03 08:24:03 浏览数 (2)

前言

Hutool是一个小而全的Java工具类库,里面集成了很多实用的工具类,比如文件、流、加密解密、转码、正则、线程、XML等,通过这些工具类就可以快速实现开发。本博客分享Hutool TimeInterval的基本使用,通过这个工具类,以后代码里就不需要为了打印代码执行时间,写了很多System.currentTimeMillis()来计算了

官网:https://hutool.cn/

一、开发环境

  • SpringBoot2.2.1.RELEASE
  • JDK1.8
  • Maven 3.2
  • Hutool5.7.11

二、使用步骤

1. 创建Springboot项目

新建一个项目,选择Spring Initializr,这里使用spring给我的服务url

选择jdk版本,maven类型的项目

官网默认没集成hutool,那就后面手动添加吧

2. 引入hutool

maven pom文件加上hutool配置

代码语言:javascript复制
 <dependency>
  <groupId>cn.hutool</groupId>
     <artifactId>hutool-all</artifactId>
     <version>5.7.11</version>
 </dependency>

3. 使用TimeInterval

在没有使用huttol之前,我们打印一下代码的执行时间,都需要通过System.currentTimeMillis()进行打印,如果代码块很多逻辑,就需要多次使用System.currentTimeMillis()

代码语言:javascript复制
 @Test
 void testNeedTime() {
     long startTime = System.currentTimeMillis();

     AtomicInteger num1 = new AtomicInteger(1);
     IntStream.range(1,10).forEach(i-> num1.incrementAndGet());
     long endTime1 = System.currentTimeMillis();
     log.info("耗时: {}" , endTime1 - startTime);

     AtomicInteger num2 = new AtomicInteger(1);
     IntStream.range(1,100).forEach(i-> num2.incrementAndGet());
     long endTime2 = System.currentTimeMillis();
     log.info("耗时: {}" , endTime2 -  endTime1 );

 }

引入huttol之后,创建一个TimeInterval ,就可以多次使用,提高了代码的简洁性

代码语言:javascript复制
@Test
void contextLoads() {
     TimeInterval timeInterval = DateUtil.timer();
     AtomicInteger num1 = new AtomicInteger(1);
     IntStream.range(1,10).forEach(i-> num1.incrementAndGet());
     log.info("耗时: {} s" , timeInterval.intervalRestart() / 1000);
     log.info("num: {}" , num1);

     AtomicInteger num2 = new AtomicInteger(1);
     IntStream.range(1,100).forEach(i-> num2.incrementAndGet());
     log.info("耗时: {} s" , timeInterval.intervalRestart() / 1000);
     log.info("num: {}" , num2);

 }

总结

合理使用工具类,可以提高代码开发效率

0 人点赞