我查看了一些提到的here性能分析器。但...
(我花了一整天的时间对此感到难过,对不起,如果我太消极了)
更新:在我清理了我的解决方案之后,再次构建它并检查所有调试信息(.pdb)被复制到与可执行文件相同的目录中,我再次尝试了AQTime并且它有效!它向我展示了托管代码和非托管代码的常规时序信息,因此我的问题得以解决。但是,我正在使用付费的分析器,所以问题将保持打开,直到我查看xperf或其他人想出其他东西
答案 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)
CLR Profiler 4是免费的。你试过吗?
您在分析器的非托管部分中寻找什么?
答案 4 :(得分:0)
您对EQATEC Profiler的关注很容易解决:它只能进行托管的.NET分析,而不是任何类型的非托管分析。
如pricing所示,实际的分析功能仅在一次可分析的程序集数量上有所不同。因此,$ 0免费版配置单组装WP7应用程序与999美元的企业版一样好。对于额外的价格标签,您可以一次分析更多的装配和少数次要功能,如打印,比较,最小/最大等。
通过trying out获取免费许可证EQATEC Analytics据说很容易。寻求无限制的企业许可证是一个非常受欢迎的选择,许多人在短短几个小时内就实现了这一目标。获得免费的99美元标准许可证不应超过10分钟左右,如果你是好的。请注意:我在EQATEC工作,我们实际上每天分发这么多免费许可证,因为它们几乎都成了负担,因为每个都是人工处理的(是的,认真!)所以这个特别优惠可能不会永远持续下去。