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

Spring计时器StopWatch 统计各个方法执行时间和占比

Spring计时器StopWatch

用法代码 返回结果是毫秒

一毫秒等于千分之一秒(0.001秒)。因此,如果你有一个以毫秒为单位的时间值,你可以通过将这个值除以1000来将其转换为秒。例如,500毫秒等于0.5秒。

import org.springframework.util.StopWatch;import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class AppTest3 {public static void main(String[] args) {StopWatch sw = new StopWatch();
//        ExecutorService executorService = Executors.newFixedThreadPool(100);List<String> list = new ArrayList<>();List<CompletableFuture<Void>> futures = new ArrayList<>();for (int i = 0; i < 1000; i++) {int finalI = i;CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {synchronized (list){list.add("Hello"+ finalI);}});futures.add(future);}sw.start(" 数据库查询");
// 代码段1...sw.stop();CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();System.out.println("Actual length: " + list.size());for (String s : list) {System.out.println(s);}sw.start(" 数据转换");
// 代码段2...sw.stop();System.out.println(sw.prettyPrint());   // 输出各段耗时及占比}
}

直接结果

在这里插入图片描述

Spring StopWatch(多段统计)

StopWatch sw = new StopWatch();
sw.start(" 数据库查询");
// 代码段1...
sw.stop(); sw.start(" 数据转换");
// 代码段2...
sw.stop(); System.out.println(sw.prettyPrint());   // 输出各段耗时及占比 
http://www.xdnf.cn/news/3096.html

相关文章:

  • ModbusRTU转PROFIBUS网关通讯
  • 30天通过软考高项-第七天
  • 如何计算数码显微镜的放大倍率
  • Kubernetes集群使用Harbor容器镜像仓库
  • 【数据治理】数据生命周期
  • ESP32- 开发笔记- 软件开发 4 - GPIO 口
  • 通过漂移-扩散仿真研究钙钛矿-硅叠层太阳能电池中的电流匹配和滞后行为
  • 【Web】如何解决 `npm run dev` 报错 `address already in use 127.0.0.1:9005` 的问题
  • WHAT - 前端开发滚动条场景解析
  • scratch代码——游戏开发 【弹簧与反弹】
  • Java-jwt4.4.0版本使用
  • 特殊权限管理
  • Linux命令使用记录(自用)
  • LS-Linux-004 误删 Python 和 yum、dnf 后的恢复步骤
  • neurips2025_latex
  • Python3(16) 函数
  • 安卓基础(无障碍点击)
  • 通用人工智能(AGI)的技术演进
  • 新人销售如何找精准客户?
  • 语言特性的发展与应用:从基础到前沿的全面解析
  • 25年第八本【活着】
  • 基于STM32、HAL库的DS28E25安全验证及加密芯片驱动程序设计
  • 一些常用的深度学习可视化平台:TensorBoard、Weights Biases (wandb)、VisualDL
  • C++ 原子操作的内存序(memory ordering)
  • ptpx常用操作
  • 企业选择IT技术人员外包能解决哪些问题
  • 【Axure高保真原型】动态地图路线
  • 三维引擎HOOPS SDK适配Linux ARM64,对国产工业软件意味着什么?
  • 深入剖析扩散模型对镜子反射理解局限:MirrorVerse 项目改进数据集与训练方法以提升反射处理表现的研究
  • 基于STM32、HAL库的ATECC608A安全验证及加密芯片驱动程序设计