您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页6.4 CPU性能分析--Intel处理器跟踪技术

6.4 CPU性能分析--Intel处理器跟踪技术

来源:爱问旅游网

Intel处理器跟踪PT技术记录程序执行过程技术它把记录信息编码存到高压缩二进制文件中二进制文件结合每条指令时间戳重建执行PT技术覆盖度开销有关开销信息详见主要用于性能问题事后分析根因定位

6.4.1 工作流

37展示小型指令序列编码类似PUSH,MOV, ADDCMP这样指令会被忽略因为他们不会改变控制然而指令JE可能会跳转label, 所以结果需要记录下来

在分析我们应用程序二进制文件采集PT跟踪信息汇总到一起软件解码器需要应用程序二进制文件重建程序执行入口开始然后采集跟踪信息作为查询参考决定控制流38展示一个解析Intel PT文件例子假设Push指令应用程序二进制文件入口点然后Push mos addCMP保持原来重建这一步查询解析跟踪信息接着软件解码器开始处理JE指令分支跳转指令因此我们需要查询分支跳转指令输出根据38跟踪文件JE条件选中T所以跳过MOV指令调用了CALL指令

运行时

指令 编码

push

mov

cmp

je.label

mov

label

call 虚函数

37 Intel处理器跟踪PT编码

6.4.2 时间报文

39指令数据非常精确但是时间信息没有那么精确显然指令CALL TESTJB不会同时发生但是我们没有有关它们更精确时间信息有了时间戳我们可以程序系统其他事件时间间隔进行对齐并且很容易挂钟时间进行比较某些实现跟踪时许可以通过时钟周期精确模式进一步改进其中硬件记录正常数据报文之间时钟周期计数

分析

指令

mov

jnz

add

cmp

je.label

mov

.label

call

test

jb

6.4.3 采集和解析跟踪文件

Linux perf工具可以方便采集IntelPT跟踪文件

perf record -e intel_pt/cycle/u ./a.out

6.4.4 用法

可能使用PT技术处理的几个例子

1 分析性能问题 因为PT会采集所有指令所以可以分析应用程序无响应一小段时间发生了什么更多详细例子相见easyperf 博客上文章

2 事后调试 PT跟踪文件可以使用传统调试工具此外PT还会提供调试信息即使破坏情况也总是有效PT跟踪文件可以远程机器上采集然后再离线分析

3 程序执行回溯

可以快速发现哪些代码路径从未被执行

借助时间戳发生自旋锁尝试可以计算出等待花费多长时间

通过检测待定指令模式检测安全问题

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务