Xperf工具的使用

简介


Xperf查看支持的Kernel Flag

《如何书写自定义的WPRP(Windows Performance Recorder Profile)文件》博文中,我们了解到SystemProvider可以通过Keyword字段来过滤掉事件类型,那么其实在Xperf工具的命令行中也有类似的字段,这个字段被称为Kernel Flags。我们可以通过如下命令查看支持的Kernel Flags

 xperf -providers KF

注:本文中所有命令行的执行都要在管理员权限的cmd.exe中执行,否则会拒绝访问
xperf Kernel Flag


Xperf查看堆栈开关选项

光是知道Kernel Flags还不足以让我们完成对进程的调用栈追踪(call stack trace),我们还需要知道有哪几个堆栈开关可供我们选择,通过如下命令查看支持的堆栈开关

xperf -help stackwalk

Xperf堆栈开关


Xperf开启事件追踪

如果要开启一次事件追踪,可以通过以下命令

xperf -on KF1+KF2+KF3

比如我们接下来想要开启一次调用栈的事件追踪会话,输入以下命令

xperf -on PROC_THREAD+LOADER+PROFILE -stackwalk profile

等待一定时间,直到当你认为记录的时间足够的时候,输入以下命令,结束会话并保存.etl文件

xperf -d test.etl

这个.etl文件会保存在cmd.exe当前的工作目录下,比如你当前的工作目录为C:\Windows\System32,则.etl文件的路径为C:\Windows\System32\test.etl


后记

其实以上只是一个Xperf工具很小的一个应用,如果想要用做其它用途,只需要修改命令行中的参数即可。比如我们想要分析内存泄露,像下面这条命令便可以追踪内存中的堆分配

xperf -on Base -stackwalk HeapCreate+HeapAlloc

系统内存信息

系统内存

  • 有关如何内存泄露这里我的了解还不够深入,可能会误导大家,所以不对大家进行讲解,有兴趣可以自己下去研究,其实事件追踪的原理都是一样的,只是配置的参数不一样

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值