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

如何为Quarkus应用生成PGO优化的原生可执行文件?

生成Quarkus应用的PGO优化原生镜像

我成功给Quarkus REST API生成过PGO优化的原生镜像,结合你已有的GraalVM企业版环境,可以按照以下步骤操作:

步骤1:生成带PGO采样功能的原生镜像

先构建一个带有PGO插桩能力的镜像,用来收集运行时的profile数据。执行命令:

./mvnw package -Dnative -Dnative.image-build.args=--pgo-instrument

执行完成后,target目录会生成一个带采样能力的应用可执行文件(比如your-app-runner)。

步骤2:运行采样镜像并收集profile数据

启动这个带采样的应用,然后模拟真实业务请求覆盖核心路径——比如用curl调用所有REST接口,或者用压测工具模拟高并发场景,确保应用的关键代码路径都被执行到。

运行采样镜像的基础命令:

./target/your-app-runner

默认情况下,应用退出时会在当前目录生成default.iprof文件,这就是收集到的profile数据。你也可以指定输出路径:

./target/your-app-runner --pgo-sample-file=my-app-profile.iprof

步骤3:用profile数据构建优化后的原生镜像

最后用收集到的.iprof文件重新构建PGO优化的镜像:

./mvnw package -Dnative -Dnative.image-build.args=--pgo=my-app-profile.iprof

替换my-app-profile.iprof为你实际生成的profile文件名即可。

注意事项

  • 必须使用GraalVM企业版,社区版不支持PGO功能
  • 采样阶段一定要覆盖应用的主要业务场景,否则优化效果会大打折扣
  • 如果需要合并多个采样数据,可以用逗号分隔多个.iprof文件,比如--pgo=prof1.iprof,prof2.iprof
  • 多模块项目需要确保参数正确传递到原生镜像构建阶段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:33:15