我检查了一些提到的性能分析器 here .但...
(我已经花了一整天的时间来解决这个问题,对不起,如果我太消极了)
更新 :在我清理了我的解决方案后,再次构建它并检查所有调试信息(.pdb)是否已复制到与可执行文件相同的目录中,我再次尝试了 AQTime,它成功了!它向我显示了托管和非托管代码的常规计时信息,因此我的问题得到了解决。但是,我使用的是付费分析器,所以在我查看 xperf 或有人提出其他问题之前,这个问题将保持开放
最佳答案
AQTime 有他们最新分析器的免费版本 (http://smartbear.com/products/free-tools/aqtime-standard/) 它支持 .Net 4,但我怀疑它可以做原生和托管的混合配置文件。
如果您真的很认真,您可能会查看 Microsoft xperf 工具 (http://msdn.microsoft.com/en-us/performance)。它们有一个陡峭的学习曲线,但它们是免费的,我怀疑任何商业分析器都可以做 xperf 可以做的事情(仪器在操作系统中,而不是在单独的进程中,因此需要 Vista、win7 或 win2K8)。我正在等待有人围绕它编写一个漂亮的 GUI,但这需要一点时间...... ;-)
xperf 将分析您的 native 代码,您可以将符号加载到结果查看器中。我不认为它会下降到每行粒度。它有一个 .Net CLR Provider (http://msdn.microsoft.com/en-us/library/dd264809.aspx)。 xperf 很酷的一点是,它还可以显示可能影响您的性能的其他进程(您可以随意将其关闭,只分析您自己的进程)。例如:由于 USB 驱动程序、病毒扫描程序或防火墙软件编写不当,它能够揭示您的 IO 很慢。传统的分析器只会显示缓慢的 IO,导致您专注于非瓶颈。
顺便说一句,还有一个 ICorProfilerCallback 接口(interface),您可以使用它来编写自己的分析器 (http://msdn.microsoft.com/en-us/library/s5ec0es1.aspx)。
关于performance - 用于 .NET 4.0 混合代码的免费 .NET Profiler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6512070/