页内存的抓取和展示说明

页内存从page层面更深层次剖析应用程序的虚拟内存操作。

页内存的抓取

页内存抓取配置参数

GitHub Logo
配置项说明:

再点击Record setting,在output file path输入文件名hiprofiler_data_ebpf.htrace,拖动滚动条设置buffer size大小是64MB,抓取时长是50s。
GitHub Logo
点击Trace command,就会根据上面的配置生成抓取命令,点击Record抓取,抓取过程中会显示抓取时长。
GitHub Logo

页内存展示说明

抓取结束后页内存的trace会自动加载展示。
GitHub Logo

界面布局介绍:页内存整体界面布局分为3个部分:

页内存泳道图展示

页内存泳道图展示事件(Operation)发生的次数,每个事件都有持续时间,鼠标悬浮以10ms为区间进行次数统计。
GitHub Logo
按住w键放大界面,悬浮框会显示当前时刻的事件发生次数。
GitHub Logo

页内存泳道图的框选功能

可以对泳道图进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有三个tab页。
Page Fault Statistics的Tab页如图:
GitHub Logo

点击下方的Statistics by Thread,可以切换到按照Thread为基点显示数据。
GitHub Logo
Analysis的Tab页如图:
GitHub Logo
Page Fault Calltree的Tab页如图:
GitHub Logo

Page Fault Events的Tab页如图:
GitHub Logo

页内存支持多种Options展示风格

点击Page Fault Calltree的Tab页底部的Options,会有四个CheckBox复选框。
GitHub Logo

页内存支持过滤调用栈调用次数的展示风格

点击Page Fault Calltree的Tab页底部的Sample Count Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。
GitHub Logo

页内存功能的调用栈Group展示-数据分析支持剪裁功能

GitHub Logo

页内存功能的调用栈Group展示支持按条件过滤

在Input Filter输入关键字,会显示出带有该关键字的展示信息。
GitHub Logo

页内存辅助信息区展示调用栈

当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。如下图的Heaviest Stack Trace:
GitHub Logo

页内存的事件类型的过滤

通过选择类型事件进行过滤。
GitHub Logo

页内存的火焰图功能

点击Page Fault Calltree左下角的柱状图的图标,会切换到火焰图页面。
GitHub Logo
进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称、所属Lib库、函数地址、耗时及其占比。
GitHub Logo
鼠标左键火焰图,会进入下一级界面,左键上级则返回上一级界面。
GitHub Logo