如何在Visual Studio 2008“Pro”中执行性能分析

时间:2009-02-21 13:57:55

标签: c# visual-studio visual-studio-2008 performance profiling

微软制作了一款名为“Visual Studio 2008 Professional”的软件。我发现似乎没有应用程序性能分析器或类似的东西,使它看起来不那么“专业”。

如果Microsoft不包含探查器,那么Visual Studio 2008的时间分析的第三方选项是什么?免费是可取的,因为这是针对大学学生的目的:P

8 个答案:

答案 0 :(得分:6)

有一些免费的分析器,不像商业分析器那样完整或精致,但它们肯定能帮助很多:

Eqatec - 这是专为Windows CE设计的,但对于普通应用程序来说效果很好。

Soft Prodigy Profile Sharp - 这实际上是一个用c#编写的开源项目,所以你可以根据需要修改它。

答案 1 :(得分:4)

就个人而言,我使用红门分析器。

其他人则向JetBrains发誓。

这些似乎是选项,它们之间并没有多少。

答案 2 :(得分:3)

我使用JetBrains dotTrace profiler。这是一个商业分析器。 (完全披露:我作为MVP获得免费许可。但 证明非常有用。)

还有免费CLR Profiler for .NET 2.0an article explaining how to use it

答案 3 :(得分:2)

我使用Team System Edition。这附带一个非常好的分析器。还有其他选择:

希望有所帮助。注意:它们都不是免费的。

快乐分析:)

答案 4 :(得分:2)

答案 5 :(得分:1)

RedGate ANTS profiler并不贵,而且能胜任。

答案 6 :(得分:0)

我使用JetBrain的dotTrace,效果很好。

答案 7 :(得分:0)

same answer as:

重新编辑:你问你的选择是什么。如果您的心脏处于分析状态,那么请寻找分析器。

另一方面,如果您确实遇到了性能问题,那么简单的方法与几乎每个分析器的工作方式相同或更好。我几乎每个人都会说,因为在某些个人资料中,你实际上可以梳理出你需要知道的东西,这是个人指令的时间成本,尤其是通话说明。

指令的时间成本是指令可以被删除时保存的时间量,并且对它的良好估计是包含它的调用堆栈样本的分数。您不需要以高精度估计该分数。如果指令是10个样本中的5个,那么它的成本可能在45%到55%的范围内。无论如何 - 如果你能摆脱它,你就可以节省成本。

因此,发现性能问题并不难。只需获取一些调用堆栈样本,收集这些样本上的指令集,并按照包含它们的样本分数对指令进行排名。在高分数指令中有一些是你可以优化的,你不必猜测它们在哪里。

我在某种程度上进行了简化,因为检查更多的状态信息通常比调用堆栈更有用,看看是否真的需要完成某些工作。但我希望能够提出这一点。

人们表示怀疑它可以在递归的情况下工作,或者在大型程序上工作。一点点思考(和实验)表明这些反对意见没有用水。