如何使用Spring Boot 3生成经PGO优化的原生可执行文件?
在Spring Boot 3 Maven应用中使用GraalVM PGO优化原生镜像
前提条件
- 已安装支持Java 17的Oracle GraalVM(需包含Native Image组件)
- Spring Boot 3.x Maven项目,已配置原生镜像构建(依赖
spring-boot-starter-parent的native插件) - macOS环境
步骤1:生成带性能分析能力的原生镜像
执行以下Maven命令,构建一个能收集运行时性能数据的原生可执行文件:
mvn native:compile -Dnative.image.buildArgs=--pgo=collect
构建完成后,项目target目录下会生成对应原生应用(例如your-app-name)。
步骤2:收集运行时性能数据
运行上述带profiling能力的原生应用,模拟真实业务流量或核心测试场景,覆盖关键代码路径:
./target/your-app-name
应用运行期间,GraalVM会自动收集性能数据,默认保存为当前目录下的default.iprof文件。测试完成后正常关闭应用,确保数据写入完成。
提示:尽量覆盖高频接口、核心业务逻辑,这样收集到的profile数据能最大化优化效果。
步骤3:构建PGO优化后的原生镜像
使用收集到的profile数据,构建最终的优化版原生镜像:
mvn native:compile -Dnative.image.buildArgs=--pgo=default.iprof
此时生成的原生应用即为经过PGO优化的版本,针对测试场景的性能会得到提升。
可选:自定义profile文件路径
若需指定profile文件的存储路径和名称,可在收集与构建阶段分别指定:
- 收集阶段指定路径:
mvn native:compile -Dnative.image.buildArgs=--pgo=collect:/custom/path/your-profile.iprof
- 构建阶段指定路径:
mvn native:compile -Dnative.image.buildArgs=--pgo=/custom/path/your-profile.iprof
内容的提问来源于stack exchange,提问作者Karsten Silz
相关产品推荐
相关产品推荐

