To instrument a binary using the command-line tools
http://msdn.microsoft.com/en-us/library/aa985635.aspx 链接的文档中有个错误,第4步中,start:/trace 应该是 /start:trace
使用 IDE 时,总是出现 “The process cannot access the file '[my assembly path]r.dll' because it is being used by another process.” 这个错误,于是放弃使用 IDE,使用命令行工具,就可以了。
VsPerfCmd 有一个选项叫 /globalON /globalOFF ,ON时才会收集数据,所以可以先 OFF 掉,然后运行你的程序,在你需要分析的操作之前 ON,然后再 OFF,这样就能使 vsp 文件小一些。
例子:
1:
VsPerfClrEnv /traceon
2:intrument 你的exe或者dll (这个只要做一次,下次可以跳过,当然如果重新编译后需要再做)
VsInstr C:\tf\Dev\release\bin\xx.dll
3:重新签名(如果需要)
sn -R C:\tf\Dev\release\bin\xx.dll
4:开始,设置输出文件名,设置global off不收集数据
VsPerfCmd /start:trace /output:c:\xxxx.vsp /globaloff
5:运行你的程序,直到希望分析的动作之前
C:\tf\Dev\release\bin\xxxx.exe
6:打开收集数据的标记
VsPerfCmd /globalon
7:动作完成后,关闭标记
VsPerfCmd /globaloff
8:退出exe,然后关闭性能监测
VsPerfCmd /shutdown
9:
VsPerfCLREnv /off
10:在 Visual Studio IDE 中打开 vsp 文件
Inclusive 和 Exclusive 的区别:http://blogs.msdn.com/profiler/archive/2004/06/09/152023.aspx
Inclusive 即 包含 该函数调用其他函数的消耗;Exclusive 即 不包含 该函数调用其他函数的消耗;通常,观察 Exclusive 来找到效率最低的函数,观察 Inclusive 找到效率最低的路径
How to profile signed assemblies in instrumentation mode: http://blogs.msdn.com/ianhu/archive/2005/07/25/443021.aspx
属性设置中可以设置 post-intrument events,重新 sign 一次
其他
第一次运行时,蓝屏,下载安装这个补丁
相关资源