在构建报告中检查配置文件

配置文件在Native Image的高效AOT编译中起着至关重要的作用。它包含应用程序特定执行的信息,用于指导额外的优化,从而进一步提高应用程序性能。可视化配置文件中的信息通常很有用。本节解释如何使用Native Image的构建报告工具来检查配置文件的一部分。

Native Image构建报告工具在GraalVM社区版中不可用。

生成配置文件可视化 #

构建报告工具显示关于生成镜像和构建过程本身的各种数据。除其他外,该工具可以可视化采样器记录的分析信息,这对于探索不同方法如何影响整体执行时间非常有用。样本被聚合到一个单独的火焰图中。火焰图采用颜色编码,以显示内联器在编译过程中是如何做出内联决策的(更多内容见下文)。

要在构建PGO优化本地可执行文件时生成包含可视化的综合报告,请在该步骤传递--emit build-report选项。例如

native-image -cp . GameOfLife -o gameoflife-pgo --pgo=gameoflife.iprof --emit build-report

有关分步指南,请参阅配置文件引导优化的基本用法

使用构建报告检查配置文件 #

Native Image采样器记录的分析信息以火焰图的形式可视化——一种聚合多个堆栈跟踪的分层图表。此火焰图专门用于区分“热”和“冷”编译单元。有三种不同的颜色

  • 红色:用于标记热编译单元的根方法;
  • 蓝色:用于内联到热编译根中的所有方法;
  • 灰色:表示“冷”代码。

注意:颜色描述和其他有用信息是图表图例的一部分,可以通过点击“?”进行切换。

Flame Graph Preview

图表本身提供了几个功能。用户可以将鼠标悬停在特定的方法条上,查看该方法的更多信息,例如样本数量和相对于总样本数量的百分比。此外,还可以“放大”特定方法(通过点击它),更清晰地查看该调用链中的所有后续调用。可以使用左上角的重置缩放按钮来重置视图。

Flame Graph Zoom

此外,图表右上角有一个搜索按钮(搜索)。它可用于突出显示与搜索条件匹配的特定方法或一组方法(方法将显示为黄色)。此外,还有一个匹配字段,表示该组在总样本数中的份额(显示在图表下方的右半部分)。请注意,这也是一个相对份额——在展开/折叠视图时会重新调整。还可以使用重置搜索按钮随时取消搜索。

Flame Graph Search

火焰图附带了额外的直方图(在其下方)。它显示了各个方法对总执行时间的贡献(按样本数量降序排列)。这些条形图也是可点击的,点击效果与搜索相同——它会突出显示上方火焰图中的特定方法。再次点击同一条形图会重置突出显示。

Histogram Highlight

延伸阅读 #

联系我们