我有两个问题:
我发现一个博客条目说DisablePagingExecutive
应该在使用时设置xperf
:
http://blogs.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx
禁用分页执行程序
为了使跟踪在64位Windows上运行,您需要设置DisablePagingExecutive
注册表项.这告诉操作系统不要将内核模式驱动程序和系统代码分页到磁盘,这是使用xperf获取64位调用堆栈的先决条件,因为64位堆栈行走取决于可执行映像中的元数据,在某些情况下xperf堆栈遍历代码不允许触摸分页页面.
这是否需要为xperf
在64位Windows上运行的32位应用程序收集数据?
在xperf
64位操作系统上收集32位进程的数据时,我应该使用x86还是x64版本?
如果您使用的是64位Windows,则应将DisablePagingExecutive设置为1并使用64位版本的WPT.
需要64位版本的WPT,因为32位版本甚至不能安装在64位Windows上.
需要将DisablePagingExecutive设置为1,因为即使是32位程序也可以调用64位内核.为了获得包含内核代码的完整调用堆栈,您需要将元数据锁定到不可分页的内存中,这就是设置DisablePagingExecutive所做的事情.
只需设置它.它不会花费太多(它使用更多的内存),如果你设置它,你不需要担心它.
最简单的设置方法是使用跟踪记录UI.wprui是一个选择(它附带Windows性能工具包),但我更喜欢UIforETW.详情请访问https://randomascii.wordpress.com/2015/09/24/etw-central/
归档时间: |
|
查看次数: |
4276 次 |
最近记录: |