我可以使用xperf来分析托管代码吗?

时间:2013-09-11 16:41:41

标签: asp.net profiling clr xperf

我试图使用xperf在ASP.NET应用程序(本地运行)中分析CPU时间。

到目前为止,我已遵循标准程序:

  1. 以管理员身份运行cmd
  2. xperf -on base
  3. 在网络应用中做一些事情。
  4. xperf -d mylog.etl
  5. xperfview mylog.etl
  6. 追踪 - >加载符号
  7. 摘要表
  8. 此时,我可以看到非托管代码的调用报告。

    对于我的.NET程序集,我需要做些什么呢?这甚至可能吗?

    我有_NT_SYMBOL_PATH中PDB的路径,至少我知道MS符号已加载。

    我见过this question,但它没有解决方案。根据{{​​3}},

      

    您需要Windows 8 SDK中的xperf版本。这个版本   支持.net。使用新的Performance Recorder UI和开始跟踪   此工具为ngened .net组件生成PDB,以便xperfview   并且WPA可以解码callstack。

    任何人都可以证实吗?我使用的是Windows 7和Windows 7 SDK。我对安装另一个平台SDK持怀疑态度。

    更新:是的,Windows 8 SDK在Windows 7上运行,为此,您唯一需要的就是Performance Toolkit。实际上,您甚至不必使用新的“Windows性能分析器”,因为新的“Windows性能记录器”生成的etl文件仍然可以与xperfview一起使用,包括增强的堆栈痕迹。有关进一步说明,请参阅已接受答案的评论。

1 个答案:

答案 0 :(得分:2)

是的,您需要Windows 8版本。尝试一下,你会发现它工作正常。如果您想使用xperf而不是WPR(UI),请按照下列步骤操作:

http://msdn.microsoft.com/en-us/library/ff357718%28v=vs.100%29.aspx