关于如何监视基于Windows的应用程序(控制台应用程序、Win Forms应用程序或服务)的性能,有了一个快速的问题。我在寻找有关如何正确有效地监视性能(CPU利用率、内存利用率、进程等)的信息。用于在.NET环境中开发的应用程序。代码中是否有我需要编写的代码来触发WMI的可用性?是否有特定的方法来创建与您所创建的应用程序直接相关的性能计数器?我想得到尽可能多的运行应用程序的细节。
如果需要在应用程序上编码以调用WMI监视器,请列出示例。
此外,是否有任何人推荐的预构建(开放源码)应用程序性能测试工具?
发布于 2014-01-31 01:38:10
了解应用程序性能的一个很好的方法是添加埃托工具。这允许您监视正在发生的事情,并在应用程序运行时收集时间。如果你测试你的应用程序,你可以回答你的应用程序需要多长时间才能完成各种操作的问题。
.NET运行时和Windows堆栈中的大多数其他组件也使用ETW,因此您还可以获得有关内存使用、等待、I/O等方面的详细信息。
ETW可以通过EventSource类提供给托管应用程序。
您可以使用Windows性能工具包或PerfView记录和分析事件。
发布于 2014-01-31 01:39:36
看看redgate套房,你可以得到免费的试用。它们不是开源的,但它们值得付出代价。
http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/
发布于 2014-01-31 01:58:35
您可以打开Performance Monitor,并且已经看到了.Net (和Windows)给出的所有性能计数器。这包括内存使用、CPU利用率、锁定争用、异常等等。
您可以添加自己的特定性能计数器,并使用PerformanceCounter以完全相同的方式收集它们。
https://stackoverflow.com/questions/21471011
复制相似问题