【问题标题】:ASP.NET MVC Application performance profilingASP.NET MVC 应用程序性能分析
【发布时间】:2023-11-22 00:28:01
【问题描述】:

目前人们如何分析他们的 ASP.NET MVC 应用程序的性能?

我对简单和免费的方法最感兴趣。

【问题讨论】:

    标签: asp.net-mvc performance


    【解决方案1】:

    Stack Overflow 发布了他们自己的分析器作为一个新的开源项目

    http://miniprofiler.com/


    更新:

    值得一提的是 Glimpse 作为另一种替代分析工具

    http://getglimpse.com/

    【讨论】:

    • Scott 在 Glimpse 上也有一个 post,好吧,您对 min profiler vs glimpse 有什么看法,在分析在线购物网站时使用哪个?
    • 感谢@stom 我添加了 Glimpse 的链接作为替代工具。
    【解决方案2】:

    Glimpse 是一个有用的工具。它提供了许多详细信息,并支持 EF 以及 Asp.net webforms 和 MVC。希望这对某人有所帮助。

    【讨论】:

    【解决方案3】:

    你能用this technique吗?它是免费的,并且适用于任何语言或平台。 它精确地定位要优化的点,尽管作为一种测量方法它是不精确的。 技术含量低,但here's discussion of why it works

    【讨论】:

    • 除非我有误解,否则我认为这只适用于基于 Java 的应用程序。
    • @UpTheCreek:自从我偶然发现它以来,我已经在使用过的所有语言和平台上使用过它,就像其他人一样。您所需要的只是一种在随机时间(而不是断点)停止程序并检查其状态(包括调用堆栈)的方法。如果有多个线程,要么全部停止,要么一次处理一个。它之所以有效,是因为如果某些活动花费了 x% 的时间,那么您将在 x% 的时间内停止它。 (在测量问题时不是很准确。在找到问题时很准确。)
    【解决方案4】:

    我最好的候选人是来自 JetBrains 的 dotTrace 个人资料。看看here

    【讨论】:

      【解决方案5】:

      如果您认真对待性能分析,那么您可能需要花一些钱。我花了很多时间使用 Redgate 的 ANTS 分析器,它帮助我找到了我的代码中导致性能问题的一些非常不寻常的方面。

      Mike 建议的技术很好,我也使用过,但是如果您真的想深入了解热点以及这些热点是如何被调用的,那么像 dotTrace 和 ANTS 这样的工具非常好。我个人更喜欢 ANTS,但 dotTrace 也能胜任。

      【讨论】:

        【解决方案6】:

        您可以查看JMeter,这是一个免费的基于 Java 的桌面应用程序,允许您对任何 Web 应用程序进行负载测试。另一个免费工具是The Grinder

        【讨论】:

        • 谢谢,这些很有趣,可能对我有用,但我真的在寻找能够查明瓶颈/候选的解决方案,以便在应用程序代码中进行优化。
        • 有一些很好的分析器,例如 Redate 的 ANTS Profiler 或 JetBrains 的 dotTRACE,但它们是商业的。他们提供了可能值得检查的试用版。