如何衡量应用程序的性能

本文关键字:性能 应用程序 何衡量 | 更新日期: 2023-09-27 18:01:33

我在 c# 中创建了一个Winforms应用程序。我想知道的是如何优化/资源要求我的应用程序是。它拖拽了多少内存和cpu功率等等。我试着看看任务管理器,并尝试了Visual Studio的分析器。这就够了吗?还是有更好的方法?

如何衡量应用程序的性能

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

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

所以,如果你不能告诉你的软件的哪个部分是慢的-你很可能不需要优化它。只有当你知道某些东西很慢时才进行优化,例如,当你点击按钮或其他东西时,你的UI会冻结。在此之后,您将需要运行性能分析器,对于我需要深入研究软件性能的情况,vs - analyzer就足够了。性能优化在这里有很好的讨论。

我所说的大多数关于性能优化的事情都可以应用于优化内存管理。我要明确研究的唯一一件事是内存泄漏,因为MemoryLeaks是bug——你应该尽量让你的软件没有bug。在我看来,查找内存泄漏比查找性能瓶颈要困难得多,因为您不会真正感觉到它们,但是您确实感觉到性能变慢。跟踪内存泄漏的一个好工具是dotMemory。使用WinDbg跟踪一些泄漏可能会非常有趣,因为这可以让您深入了解GarbageCollection(有根对象与无根对象)的工作原理。

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

Analyze -> Profiler -> New Performance Session

您只能根据需求度量性能。需求应该说明特定条件下函数执行时间的kpi,因为应用程序在连接的用户很少的情况下可能很快,但在正常负载下使用时可能很慢。其他的都是浪费时间。