You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.1.1+Java8迁移至3.0.2+Java17后性能问题求助

Spring Boot 3.0.2 + Java 17 迁移后性能问题排查求助

原本使用Spring Boot 2.1.1搭配Java 8时无性能问题,迁移至Spring Boot 3.0.2搭配Java 17后出现性能问题,恳请协助排查原因。

数据获取核心代码

public Iterable<DTO> findById(Integer id, MultiValueMap<String, String> filterParams, Pageable pageable) throws Exception {
    Page<MODEL> list= repo.findAll(Specification.doFilter(id, filterParams), pageable);
    List<DTO> casDto = list.stream().map(xref -> DtoMapper.convertDto(xref.getContact(), campaignId)).collect(Collectors.toList());
    return new PageImpl<>(casContactsDto, pageable, casprContactCampaignRefList.getTotalElements());
}

Specification过滤逻辑代码

public static Specification<MODEL> doFilter(Integer campaignId, MultiValueMap<String, String> filterParams) {
    return (root, query, cb) -> {
        return Specification.where(isActiveInCampaign(campaignId))
            .and(hasNumTouches(filterParams.get("number_of_touches")))
            .and(hasPrivacyRules(filterParams.get("privacy_rules")))
            .and(hasContactValue(filterParams.get("wksp_contact"), "fullName"))
            .and(hasContactValue(filterParams.get("wksp_account"), "companyName"))
            .and(hasContactValue(filterParams.get("wksp_primary_ae"), "primaryAE"))
            .and(hasContactValue(filterParams.get("wksp_email_address"), "emailAddress"))
            .toPredicate(root, query, cb);
    };
}

排查方向建议

  • SQL生成差异检查:Spring Boot 3.x对应Spring Data JPA版本升级,可能导致Specification生成的SQL逻辑变化。开启JPA SQL日志(配置spring.jpa.show-sql=true、spring.jpa.properties.hibernate.format_sql=true),对比两个版本生成的SQL,重点看是否出现全表扫描、关联查询效率下降、分页逻辑异常等情况。
  • JVM性能监控:Java 17默认GC(G1GC)参数有调整,可通过jstat、jvisualvm监控GC停顿时间、吞吐量,对比Java 8下的表现。另外,JPMS模块系统可能影响类加载耗时,可检查启动及运行时的类加载情况。
  • DTO转换性能测试:单独测试DtoMapper.convertDto方法的执行耗时,排查是否在Java 17下该方法本身变慢,或者Stream转换过程中存在不必要的对象创建、重复计算等问题。
  • 依赖版本兼容验证:Spring Boot 3.x升级了Hibernate到6.x版本,其查询解析、缓存机制有较大改动。检查二级缓存配置是否在新版本中失效,查询缓存是否正常启用,是否出现缓存命中率下降的情况。
  • 分页逻辑校验:确认PageImpl构造参数是否正确,新版本中分页参数的处理是否有变化,是否出现额外的count查询或count查询效率骤降的问题。

内容的提问来源于stack exchange,提问作者Nayaz JH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:03:16