4

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

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

  1. cmd以管理员身份运行
  2. xperf -on base
  3. 在网络应用程序中做一些事情。
  4. xperf -d mylog.etl
  5. xperfview mylog.etl
  6. 跟踪 -> 加载符号
  7. 汇总表

那时,我可以看到非托管代码的调用报告。

我必须做什么才能看到我的 .NET 程序集相同?这甚至可能吗?

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

我见过这个问题,但它没有解决方案。根据这个答案

您需要来自 Windows 8 SDK 的 xperf 版本。此版本支持 .net。使用新的 Performance Recorder UI 开始跟踪,此工具会为生成的 .net 组件生成 PDB,以便 xperfview 和 WPA 可以解码调用堆栈。

谁能证实这一点?我正在使用 Windows 7 和 Windows 7 SDK。我对安装另一个平台 SDK 持怀疑态度。

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

4

1 回答 1

2

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

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

于 2013-09-12T19:16:44.027 回答