代码优化工具

您所在的位置:网站首页 iphone怎么看运行时间 代码优化工具

代码优化工具

2024-07-04 19:01| 来源: 网络整理| 查看: 265

参考: [技巧]IDEA的debug+StopWatch监测程序运行时间

添加链接描述

1创建类StopWatchExpand 创建在微服务中的结构在这里插入图片描述

import lombok.extern.slf4j.Slf4j; import org.springframework.util.StopWatch; import java.text.NumberFormat; /** * 检测程序片段运行时间拓展 * * @author sdevil507 * created on 2021/5/27 */ @Slf4j public class StopWatchExpand { /** * StopWatch实例 */ private static StopWatch STOP_WATCH; /** * StopWatch实例初始化 */ public static void init() { STOP_WATCH = new StopWatch("运行时间"); } /** * 开启计时 * * @param taskName 任务名称 * @return 提示字符串 */ public static String start(String taskName) { STOP_WATCH.start(taskName); return "[ 任务: " + taskName + " ]" + " 监测运行时间开始......"; } /** * 结束计时 */ public static void stop() { STOP_WATCH.stop(); } /** * 格式化的统计输出 * * @return 统计输出 */ public static String prettyPrint() { // 获取运行的毫秒数与秒数 long totalTimeMillis = STOP_WATCH.getTotalTimeMillis(); double totalTimeSeconds = STOP_WATCH.getTotalTimeSeconds(); // 编写总结 String shortSummary = "StopWatch '" + STOP_WATCH.getId() + "': running time [ " + String.format("%9s", totalTimeMillis) + "ms / " + String.format("%9.3f", totalTimeSeconds) + "s ]"; StringBuilder sb = new StringBuilder(); sb.append("---------------------------------------------------------------\n"); sb.append(shortSummary); sb.append('\n'); sb.append("---------------------------------------------------------------\n"); sb.append(" ms s % Task name\n"); sb.append("---------------------------------------------------------------\n"); NumberFormat pf = NumberFormat.getPercentInstance(); pf.setMinimumIntegerDigits(3); pf.setGroupingUsed(false); for (StopWatch.TaskInfo task : STOP_WATCH.getTaskInfo()) { sb.append(String.format("%9s", task.getTimeMillis())).append(" "); sb.append(String.format("%9.3f", task.getTimeSeconds())).append(" "); sb.append(pf.format((double) task.getTimeMillis() / totalTimeMillis)).append(" "); sb.append(task.getTaskName()).append("\n"); } return sb.toString(); } }

2在需要查看代码的时间的地方打断点并进去 在这里插入图片描述 在这里插入图片描述

把默认勾选的挂起 取消勾选,更多就变成如第二张图,勾选“求值并记录”

(0)在最开始的地方设置init:StopWatchExpand.init();StopWatchExpand.start("任务1"); 表示设置init初始化并启动第一个任务 (1)在代码开始段设置start:StopWatchExpand.start("获取basic"); 在这里插入图片描述 (2)在代码末尾段设置StopWatchExpand.stop();StopWatchExpand.start("任务2"); 表示任务1结束,任务2开始 可以添加多个StopWatchExpand.stop();StopWatchExpand.start("任务xxx");表示上一个任务结束,下一个任务开始 (3)在函数结尾处添加设置StopWatchExpand.stop();StopWatchExpand.prettyPrint(); 表示所有任务结束并打印每一个的任务详情

在这里插入图片描述 注意:可以在每个需要看时长的地方加上start和stop【这两个是一对,前提是一定要init】,最后调用的prettyPrint()是第一步自定义的方法,会格式化打印在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3