【问题标题】:How to Measure an App's Performance?如何衡量应用程序的性能?
【发布时间】:2015-07-08 16:21:04
【问题描述】:

我在 C# 中创建了一个 Winforms 应用程序。我想知道我的应用的优化/资源需求如何。它拖了多少内存和cpu功率等等。我试图查看 Task manager 并尝试了 Visual Studio's Analyzer 。够了吗?还是有更好的方法?

【问题讨论】:

  • 视觉工作室分析器

标签: c# performance memory-management cpu-usage


【解决方案1】:

根据您询问分析器工具的方式,我很确定您不需要任何性能或管理优化。出于这个原因,我想从 Donald Knuth 关于优化的引述开始:

我们应该忘记小的效率,比如大约 97% 的时间: 过早的优化是万恶之源。然而我们不应该通过 在关键的 3% 中增加我们的机会。

因此,如果您无法判断软件的哪个部分变慢 - 您很可能不需要对其进行优化。仅当您知道某些事情很慢时才进行优化,例如单击 ButtonA 或其他任何内容时,您的 UI 会冻结。之后你会想要运行一个性能分析器,对于我需要深入了解我的软件性能的情况,VS-Analyzers 已经足够了。性能优化已得到很好的讨论here

我所说的关于性能优化的大部分内容都可以应用于优化内存管理。我唯一要明确研究的是内存泄漏,因为 MemoryLeaks 是错误 - 你应该尽量保持你的软件没有错误。在我看来,它比性能瓶颈更难找到内存泄漏,因为您不会真正感觉到它们,而您确实感觉到性能缓慢。跟踪内存泄漏的好工具是dotMemory。使用 WinDbg 追踪一些泄漏可能非常有趣,因为这可以让您深入了解 GarbageCollection(有根对象与无根对象)的工作原理。

【讨论】:

  • 非常感谢。你不能更好地指导我。我现在很好。
【解决方案2】:

点击Debug -> Start Performance Analysis。快捷键是 Alt+F2。

Analyze -> Profiler -> New Performance Session

【讨论】:

  • 感谢您的帮助。欣赏它。
【解决方案3】:

您只能根据要求衡量性能。并且要求应说明特定条件下功能执行时间的 KPI,因为应用程序在连接的用户很少的情况下可能很快,但在正常负载下使用时会非常慢。 其他一切都是浪费时间。

【讨论】:

    猜你喜欢
    • 2012-07-31
    • 1970-01-01
    • 2018-08-05
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多