免费的.NET Profiler for .NET 4.0混合代码

时间:2011-06-28 19:30:28

标签: 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或其他人想出其他东西

5 个答案:

答案 0 :(得分:3)

AQTime有他们最新的探查器的免费版本(http://smartbear.com/products/free-tools/aqtime-standard/)它支持.Net 4,但我怀疑它可以做一个混合的Native和管理。

如果您真的很认真,可以查看Microsoft xperf工具(http://msdn.microsoft.com/en-us/performance)。他们有一个陡峭的学习曲线,但它们是免费的,我怀疑任何商业分析师都可以做xperf所能做的(仪器在操作系统中,而不是在单独的过程中,因此需要Vista,win7或win2K8)。我正在等待有人为它编写一个漂亮的GUI,但这需要一段时间......; - )

xperf将分析您的本机代码,您可以将符号加载到结果查看器中。我不认为它会降低到每行的粒度。它有一个.Net CLR Provider(http://msdn.microsoft.com/en-us/library/dd264809.aspx)。关于xperf的一个很酷的事情是,它还可以显示可能影响您性能的其他进程(您可以自由地关闭它并只分析您自己的进程)。例如:由于编写错误的USB驱动程序,病毒扫描程序或防火墙软件,它能够显示您的IO速度很慢。传统的分析器只会显示缓慢的IO,导致您专注于非瓶颈。

顺便说一下,还有一个ICorProfilerCallback接口可以用来编写自己的探查器(http://msdn.microsoft.com/en-us/library/s5ec0es1.aspx)。

答案 1 :(得分:1)

我很确定你问题的答案是“没有人”。

几个月前,在比较一大堆.NET分析器时,我发现很少有人可以进行混合的.NET /原生分析:AQTime(599美元)和Glowcode(499美元)。或者他们说 - 我没试过。

EQATEC,Visual Studio,ANTS,Jetbrains dotTrace,Yourkit,XteProfiler,Slimtune等都不能,所以我怀疑你很快就能找到一个免费的探查器。

答案 2 :(得分:0)

OP:“如果有人向我保证XXXX可以分析托管代码和非托管代码,我会继续使用它”

我们的C# Timing Profiler不依赖于您的C#代码的编译方式(托管或非托管或混合)。它应该可以正常工作。

答案 3 :(得分:0)

Microsoft的

CLR Profiler 4是免费的。你试过吗?

您在分析器的非托管部分中寻找什么?

答案 4 :(得分:0)

您对EQATEC Profiler的关注很容易解决:它只能进行托管的.NET分析,而不是任何类型的非托管分析。

pricing所示,实际的分析功能仅在一次可分析的程序集数量上有所不同。因此,$ 0免费版配置单组装WP7应用程序与999美元的企业版一样好。对于额外的价格标签,您可以一次分析更多的装配和少数次要功能,如打印,比较,最小/最大等。

通过trying out获取免费许可证EQATEC Analytics据说很容易。寻求无限制的企业许可证是一个非常受欢迎的选择,许多人在短短几个小时内就实现了这一目标。获得免费的99美元标准许可证不应超过10分钟左右,如果你是好的。请注意:我在EQATEC工作,我们实际上每天分发这么多免费许可证,因为它们几乎都成了负担,因为每个都是人工处理的(是的,认真!)所以这个特别优惠可能不会永远持续下去。