【问题标题】:How To Do Performance Profiling in Visual Studio 2008 "Pro"如何在 Visual Studio 2008 “Pro”中进行性能分析
【发布时间】:2010-10-09 01:16:03
【问题描述】:

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

如果 Microsoft 不包含分析器,那么您有哪些第三方选项可用于 Visual Studio 2008 的时间分析?免费会更好,因为这是为了大学学生的目的:P

【问题讨论】:

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


    【解决方案1】:

    RedGate ANTS profiler 并不昂贵,而且可以胜任。

    【讨论】:

      【解决方案2】:

      就个人而言,我使用 Red Gate 分析器。

      其他人对 JetBrains 发誓。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          分析愉快:)

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

            • 请注意,免费的实际上非常适合内存分配跟踪,但直接性能分析它会落后于其他系统。我知道没有免费的支持混合模式分析或采样而不是检测。 AQTime 和 Team system 一都这样做
            • 我刚刚尝试了那个 dotTrace 演示。我希望它不会是我所期望的,但它确实是。它用精美呈现的无关紧要的东西淹没了你。重要的是,它在调用myBitmap.SetPixel 时花费了超过 90% 的时间,而在各个地方的剩余时间很小,例如将射线与球体相交,很容易显示,没有多少停顿。我在 DT 里到处转悠,但那里没有告诉我停顿告诉我什么。
            • @MikeDunlavey:我没有足够的上下文来理解该评论,但 dotTrace 确实帮助我找到了 Noda Time 的瓶颈......
            【解决方案6】:

            有几个免费的分析器,不像商业的那样完整或完善,但它们肯定可以提供很多帮助:

            Eqatec - 这是为 Windows CE 设计的,但在普通应用程序中工作得很好。

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

            【讨论】:

              【解决方案7】:

              same answer as:

              重新编辑:你问你的选择是什么。如果您一心想进行分析,请寻找分析器。

              另一方面,如果您确实要查找性能问题,那么简单方法的效果与几乎所有分析器一样好或更好。我说几乎每一个,因为在某些分析器中,您实际上可以梳理出您需要知道的内容,这是归因于单个指令的时间成本,尤其是调用指令。

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

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

              我稍微简化了一点,因为通常检查更多的状态信息而不是仅仅检查调用堆栈是有帮助的,以查看正在完成的某些工作是否真的有必要。但我希望重点是。

              人们表示怀疑它是否可以在存在递归的情况下工作,或者在大型程序上工作。稍加思考(和实验)就表明这些反对意见是站不住脚的。

              【讨论】:

              • 但是我的问题是针对 Visual Studio 2008 的
              【解决方案8】:

              【讨论】:

              • 但是“必须使用完整安装的具有分析支持的 Visual Studio 2008 才能查看生成的性能报告”
              猜你喜欢
              • 2010-09-08
              • 2023-03-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多