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