我试图使用xperf来分析ASP.NET应用程序中的CPU时间(在本地运行)。
到目前为止,我遵循了标准程序:
cmdxperf -on basexperf -d mylog.etlxperfview mylog.etl此时,我可以看到非托管代码的调用报告。
对于我的.NET程序集,我需要做什么才能看到相同的结果呢?这有可能吗?
我在_NT_SYMBOL_PATH中有通往我的PDB的路径,至少我知道MS符号是加载的。
我见过this question,但它没有决心。据this answer称,
您需要Windows8SDK中的xperf版本。此版本支持.net。使用新的Performance启动跟踪,这个工具为ngened .net组件生成PDBs,以便xperfview和WPA可以解码调用堆栈。
有人能证实这一点吗?我正在使用Windows 7和Windows7SDK。我对安装另一个平台SDK持怀疑态度。
UPDATE:是的,Windows8SDK运行在Windows7上,为此,您只需要性能工具包。实际上,您甚至不必使用新的“”,因为由新的“”生成的etl文件仍然可以使用xperfview,包括增强的堆栈跟踪。关于进一步的注释,请参见已接受的答案的评论。
发布于 2013-09-12 19:16:44
是的,你需要Windows 8版本。试一试,你就会发现它很好用。如果您想使用xperf而不是WPR(UI),请遵循以下命令:
http://msdn.microsoft.com/en-us/library/ff357718%28v=vs.100%29.aspx
https://stackoverflow.com/questions/18746810
复制相似问题