如何用免费工具分析Spring Boot REST服务的代码与查询效率?
基于IntelliJ的Spring Boot接口性能分析方案
一、代码效率分析(无需额外工具)
- IntelliJ自带Profiler:点击IDE右上角运行按钮旁的「Profile」选项启动服务,调用耗时接口后停止Profiling。查看「Call Tree」面板,按耗时占比排序方法,定位耗时最长的业务逻辑方法。重点排查方法内的循环嵌套、重复对象创建、IO操作等可能拖慢性能的点。
- 轻量日志埋点:用项目自带的SLF4J在关键业务方法前后添加时间戳日志,比如:
通过日志输出快速定位慢方法,注意不要在循环内打印日志,避免额外性能开销。long start = System.currentTimeMillis(); // 你的业务逻辑代码 log.debug("业务方法X执行耗时:{}ms", System.currentTimeMillis() - start); - 断点计时调试:在可疑代码段前后设置断点,Debug模式下执行时,用IDE的「Evaluate Expression」功能计算代码块耗时,比如选中代码后执行:
直接得到这段代码的执行时间。long start = System.currentTimeMillis(); // 选中的代码片段 long end = System.currentTimeMillis(); end - start
二、数据库查询效率分析(免费工具)
- IntelliJ Database执行计划分析:用IDE自带的Database工具连接你的数据库,复制接口执行的SQL语句到查询窗口,右键选择「Explain Plan」。查看执行计划中的
type字段(若为ALL表示全表扫描,需优化)、key字段(确认是否用到了预期的索引)、rows字段(扫描行数过多说明查询效率低),针对性优化索引或SQL写法。 - Spring Boot日志打印SQL及耗时:在
application.properties中添加配置:
控制台会输出完整的SQL语句、参数,结合日志时间戳可计算单条SQL的执行耗时,快速定位慢查询。logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE logging.level.com.zaxxer.hikari=DEBUG - HikariCP连接池状态监控:Spring Boot默认使用HikariCP,添加配置开启Actuator端点:
启动服务后访问management.endpoints.web.exposure.include=hikaricp/actuator/hikaricp,查看连接池的活跃连接数、等待队列长度等指标,若存在连接等待或池配置不足,需调整hikari.maximum-pool-size等参数。
内容的提问来源于stack exchange,提问作者GmanG77
相关产品推荐
相关产品推荐

