IDEA如何在DEBUG中输出耗时
一、介绍
在今天进行debug
的时候,我突然想知道一段业务代码执行需要多少时间。
这也很简单,打上日志输出耗时就行了。
可是,当时的项目已经debug
启动,想要输出还得改代码,还得重新启动
这就很麻烦了,有没有什么其他方法呢?
还真的有,这个IDEA
中debug
带的功能,我们使用下就可以进行输出耗时了,如下
二、代码
假设我们有这么一段代码,中间的睡眠,我们模拟业务的方法调用
我们只需要在前面打上断点
需要在这里输入什么代码呢?
本文考虑的是耗时,所以我找了一个工具类,如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| package com.banmoon.utils;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.util.StrUtil;
public class TimeIntervalUtil {
private static TimeInterval timeInterval;
public static String init() { return init(false); }
public static String init(boolean isNano) { timeInterval = DateUtil.timer(isNano); return StrUtil.format("计时开始,当前时间:{}", DateUtil.now()); }
public static String start(String groupId) { timeInterval.start(groupId); return StrUtil.format("分组计时开始,分组ID:{},当前时间:{}", groupId, DateUtil.now()); }
public static String intervalPretty() { String pretty = timeInterval.intervalPretty(); return StrUtil.format("耗时:{}", pretty); }
public static String intervalPretty(String groupId) { String pretty = timeInterval.intervalPretty(groupId); return StrUtil.format("分组ID:{},耗时:{}", groupId, pretty); }
}
|
代码比较简单,都看懂了吧
我们只需要输入这样的方法,一个断点一条
1 2
| TimeIntervalUtil.init() TimeIntervalUtil.intervalPretty()
|
这两个断点是黄色的,这种是不会打断执行的。那么执行一下看看效果,成功!!
三、最后
当然了,上面只是试了其中的一个计时api
,还可以使用分组计时,具体自己看下文档吧。
这个功能,我常常这样使用。在我们发起调用后,突然发现方法中,某个变量要改动,一次还行,多次调用排查问题就会显得很麻烦。
我直接上面那样操作一下,赋值某个具体的值。这样,就不用每次进行修改赋值了。
比较常见于使用的token
是这个人的,调试的时候不想改token
,我直接改那个从token
中拿出来的userId
。
我是半月,你我一同共勉!!!