zip's

while(true) { Write it down; Think about it; Refine it; Sleep(); }

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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 一次

 

其他

第一次运行时,蓝屏,下载安装这个补丁 

相关资源

Visual Studio Profier Team Blog

one of the developers on the IntelliTrace team

posted on 2011-06-08 15:36  zip's  阅读(312)  评论(0编辑  收藏  举报