如何衡量应用程序的性能?
How to Measure an App's Performance?
我在 C# 中创建了一个 Winforms 应用程序。我想知道的是 optimized/resource-demanding 我的应用程序如何。它拖了多少内存和cpu功率等等。我试着查看 Task manager 并尝试了 Visual Studio 的 Analyzer 。够了吗?或者有更好的方法吗?
点击Debug -> Start Performance Analysis
。快捷键是 Alt+F2。
Analyze -> Profiler -> New Performance Session
根据您询问分析器工具的方式,我很确定您不需要任何性能或管理优化。出于这个原因,我想从 Donald Knuth 关于优化的引述开始:
We should forget about small efficiencies, say about 97% of the time:
premature optimization is the root of all evil. Yet we should not pass
up our opportunities in that critical 3%.
因此,如果您无法判断软件的哪一部分变慢了 - 您很可能不需要对其进行优化。仅当您知道某些事情很慢时才进行优化,例如单击 ButtonA 或其他内容时,您的 UI 冻结。之后你会想要 运行 一个性能分析器,对于我需要深入研究我的软件性能的情况,VS-Analyzers 就足够了。性能优化讨论得很好here。
我所说的关于性能优化的大部分内容都可以应用于优化内存管理。我唯一要明确调查的是内存泄漏,因为 MemoryLeaks 是错误 - 你应该尽量让你的软件没有错误。在我看来,找到内存泄漏比找到性能瓶颈更难,因为你不会真正感觉到它们,而你确实感觉性能下降. dotMemory 是追踪内存泄漏的好工具。使用 WinDbg 追踪一些泄漏可能会非常有趣,因为这可以让您深入了解 GarbageCollection(有根对象与无根对象)的工作原理。
您只能根据要求衡量绩效。并且要求应该说明特定条件下功能执行时间的 KPI,因为应用程序在连接的用户很少的情况下可能很快,但在正常负载下使用时会非常慢。
其他一切都是浪费时间。
我在 C# 中创建了一个 Winforms 应用程序。我想知道的是 optimized/resource-demanding 我的应用程序如何。它拖了多少内存和cpu功率等等。我试着查看 Task manager 并尝试了 Visual Studio 的 Analyzer 。够了吗?或者有更好的方法吗?
点击Debug -> Start Performance Analysis
。快捷键是 Alt+F2。
Analyze -> Profiler -> New Performance Session
根据您询问分析器工具的方式,我很确定您不需要任何性能或管理优化。出于这个原因,我想从 Donald Knuth 关于优化的引述开始:
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.
因此,如果您无法判断软件的哪一部分变慢了 - 您很可能不需要对其进行优化。仅当您知道某些事情很慢时才进行优化,例如单击 ButtonA 或其他内容时,您的 UI 冻结。之后你会想要 运行 一个性能分析器,对于我需要深入研究我的软件性能的情况,VS-Analyzers 就足够了。性能优化讨论得很好here。
我所说的关于性能优化的大部分内容都可以应用于优化内存管理。我唯一要明确调查的是内存泄漏,因为 MemoryLeaks 是错误 - 你应该尽量让你的软件没有错误。在我看来,找到内存泄漏比找到性能瓶颈更难,因为你不会真正感觉到它们,而你确实感觉性能下降. dotMemory 是追踪内存泄漏的好工具。使用 WinDbg 追踪一些泄漏可能会非常有趣,因为这可以让您深入了解 GarbageCollection(有根对象与无根对象)的工作原理。
您只能根据要求衡量绩效。并且要求应该说明特定条件下功能执行时间的 KPI,因为应用程序在连接的用户很少的情况下可能很快,但在正常负载下使用时会非常慢。 其他一切都是浪费时间。