开发指南049-优化性能

如果发现某个操作耗时比较长,一般的解决框架如下:

一般都是发生在后台:

第一步 把整个流程从接收前端参数,到输出结果,按照业务逻辑划分为几个环节。

第二步 记录每个环节的耗时:

java 复制代码
Calendar dateTime = Calendar.getInstance();
Date begin = dateTime.getTime();
----环节一--
dateTime = Calendar.getInstance();
Date end = dateTime.getTime();
CommonsUtil.debugLog("==----环节一 耗时:[" + String.valueOf(end.getTime() - begin.getTime()) + "]毫秒 ");

类似写法获取环节二 环节三 ...

第三步 分析环节耗时,从最耗时的地方入手。

第四步 必要时,将环节拆分成子环节 重复上面操作二

另CommonsUtil.debugLog只有在系统处于调试状态时才输出结果:

nacos中配置对应微服务

qlm:

debug: true

相关推荐
小七mod2 分钟前
【Spring】Java SPI机制及Spring Boot使用实例
java·spring boot·spring·spi·双亲委派
亿.627 分钟前
【Java安全】RMI基础
java·安全·ctf·rmi
ruan11451442 分钟前
Java Lambda 类型推断详解:filter() 方法与 Predicate<? super T>
java·开发语言·spring·stream
朱杰jjj43 分钟前
解决jenkins的Exec command命令nohup java -jar不启动问题
java·jenkins·jar
上上迁1 小时前
分布式接口幂等性的演进和最佳实践,含springBoot 实现(Java版本)
java·spring boot·分布式
匚WYHaovous1 小时前
Java断言的深度解析与实战指南
java
WanderInk1 小时前
揭秘Java协变返回类型:让你的API少一点强转,多一点优雅
java·后端
paopaokaka_luck1 小时前
基于SpringBoot+Vue的非遗文化传承管理系统(websocket即时通讯、协同过滤算法、支付宝沙盒支付、可分享链接、功能量非常大)
java·数据库·vue.js·spring boot·后端·spring·小程序
iteye_99391 小时前
让 3 个线程串行的几种方式
java·linux
YuTaoShao1 小时前
【LeetCode 热题 100】142. 环形链表 II——快慢指针
java·算法·leetcode·链表