1:创建工具类TimeHelperUtils
public class TimeHelperUtils {
private static final NamedThreadLocal<Map<String, Long>> TIME_TL = new NamedThreadLocal<>("TIME_TL");
/**
* 根据key开始计时
*
* @param timeKey
*/
public static void start(String timeKey) {
Map<String, Long> timeMap = TIME_TL.get();
if (timeMap == null) {
timeMap = new HashMap<>(16);
}
timeMap.put(timeKey, System.currentTimeMillis());
TIME_TL.set(timeMap);
}
/**
* 根据key计算耗时
*
* @param timeKey
* @return
*/
public static Long end(String timeKey) {
try {
Map<String, Long> timeMap = TIME_TL.get();
return System.currentTimeMillis() - timeMap.get(timeKey);
} catch (Exception ex) {
return -1L;
} finally {
TIME_TL.remove();
}
}
}
2:使用TimeHelperUtils
在Controller层使用
TimeHelper.start("方法名称XXXX");
log.info(" - - > XXXXX耗时:{}", TimeHelper.end("方法名称XXXX"));