performance - 用于 .NET 4.0 混合代码的免费 .NET Profiler

标签 performance .net-4.0 profiler mixed

我检查了一些提到的性能分析器 here .但...

  • EQATec 对我不起作用,因为我有很多要分析的程序集,并且它对要分析的程序集有限制。获得免费许可证有多麻烦?如果有人向我保证 EQATec 可以分析托管和非托管代码
  • ,我会选择它。
  • SlimTune 只分析了我的托管代码,即使我将“Profile native functions”设置为“True”
  • XTE Profiler 不再免费
  • 我们有一份我们之前购买的 AQTime 6,但它似乎不支持 .NET 4.0 应用程序(它甚至无法启动我的应用程序)
  • 我们使用 Visual Studio 2010 Professional SP1,因此我们没有 Visual Studio 分析器
  • 我尝试了“穷人的分析”(多次停止程序并查看它在哪里),但我得到的结果太随机了,而且我更习惯于传统的分析

  • (我已经花了一整天的时间来解决这个问题,对不起,如果我太消极了)

    更新 :在我清理了我的解决方案后,再次构建它并检查所有调试信息(.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/

    相关文章:

    java - 使用代理与进程附加 jvm 分析器之间的区别

    python - 什么是 _md5.md5,为什么 hashlib.md5 这么慢?

    sql - 我可以在 sql server 2008 profiler 中监控特定表的性能吗

    javascript - Chrome Profiler Javascript 内存泄漏

    WCF、SSL 和 ADFS2.0 Active Federation 问题

    .net-4.0 - 有没有办法知道任务并行库中当前正在运行哪些任务?

    .net-4.0 - 没有 CLR 版本 v4。加载到目标进程中。 - CLR 分析器错误

    c# - 为什么 Directory.GetFiles() 在后续运行中运行得更快?

    PHP - 回显还是不回显?

    jQuery 动态 qtip 显示 div,但每次鼠标悬停都会变得越来越慢