- 适用于 JDK 23 的 GraalVM(最新版本)
- 适用于 JDK 24 的 GraalVM(抢先体验版)
- 适用于 JDK 21 的 GraalVM
- 适用于 JDK 17 的 GraalVM
- 存档
- 开发版本
在构建报告中检查概要文件
概要文件在原生镜像的有效 AOT 编译中起着至关重要的作用。它包含有关应用程序特定执行的信息,并用于指导进一步提高应用程序性能的额外优化。可视化概要文件中的信息通常很有用。本节介绍如何使用原生镜像**构建报告**工具检查概要文件的部分内容。
原生镜像构建报告工具在 GraalVM 社区版中不可用。
生成概要文件可视化 #
构建报告工具显示有关生成的镜像和构建过程本身的各种数据。除其他事项外,该工具还可以可视化采样器记录的概要文件信息,这对于探索不同方法如何影响整体执行时间非常有用。样本被聚合到一个单独的火焰图中。火焰图使用颜色编码来显示内联程序在编译期间如何进行内联决策(更多信息见下文)。
要生成包含可视化的综合报告,请在构建 PGO 优化的原生可执行文件时传递--emit build-report
选项。例如
native-image -cp . GameOfLife -o gameoflife-pgo --pgo=gameoflife.iprof --emit build-report
有关分步指南,请参阅 概要文件引导优化的基本用法。
使用构建报告检查概要文件 #
原生镜像采样器记录的概要文件信息以火焰图的形式可视化 - 这是一种将多个堆栈跟踪聚合在一起的层次图表。此火焰图专门用于区分“热”与“冷”编译单元。有三种不同的颜色
- 红色:用于标记热编译单元的根方法;
- 蓝色:用于内联到热编译根的所有方法;
- 灰色:代表“冷”代码。
注意:颜色说明和其他有用信息是图表图例的一部分,可以通过单击“?”进行切换。
图表本身提供了几个功能。用户可以将鼠标悬停在特定方法栏上,查看有关该方法的更多信息,例如样本数量和与样本总数相关的百分比。除此之外,还可以“放大”到特定方法(通过单击它),更清楚地查看该调用链中的所有后续调用。可以使用左上角的重置缩放按钮重置视图。
此外,图表右上角还有一个搜索按钮(搜索)。它可以用来突出显示与搜索条件匹配的特定方法或方法组(方法将以黄色显示)。此外,还有一个匹配项字段,代表该组在样本总数中的比例(显示在图表下方右侧)。请注意,这也是一个相对比例 - 在展开/折叠视图时会重新调整。也可以使用重置搜索按钮随时取消搜索。
火焰图附带一个额外的直方图(在其下方)。它显示了各个方法对总执行时间的贡献(按样本数量降序排列)。这些栏也可以单击,单击的效果与搜索相同 - 它会在上面的火焰图中突出显示该特定方法。再次单击该栏会重置突出显示。