2014-01-31 223 views
4

關於如何監控基於Windows的應用程序(控制檯應用程序,Win Forms應用程序或服務)的性能有一個簡短的問題。我一直在尋找關於如何正確有效地監控.NET環境中開發的應用程序的性能(CPU利用率,內存利用率,進程等等)的信息。我需要編寫代碼來觸發WMI的可用性嗎?是否有創建性能計數器的具體方法,直接與您創建的應用程序相關?我想盡可能詳細地瞭解運行的應用程序。.NET應用程序和性能監控

如果需要在應用程序上編寫代碼來調用WMI監視器,請列出示例。

此外,是否有任何人建議的預構建(開源)應用程序性能測試工具?

+0

我已經編輯好標題完全相同的方式收集它們。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

使用任務管理器,perfmon或任何您將用於監視本機Windows應用程序的任何問題? –

+0

你應該問一個關於performance_testing_的單獨問題。這與性能監控非常不同。 –

回答

3

深入瞭解應用性能的好方法是添加ETW儀器。這使您可以監視正在進行的操作,並在應用程序運行時收集計時。如果您使用應用程序,則可以回答關於在應用程序內部完成各種操作需要多長時間的問題。

.NET運行時和Windows堆棧中的大多數其他組件也都使用ETW,因此您還可以獲取有關內存使用情況,等待,I/O等的詳細信息。

ETW通過EventSource類可用於託管的應用程序。

您可以使用Windows Performance ToolkitPerfView來記錄和分析事件。

+0

這對CPU或內存利用率有什麼幫助? – millimoose

+0

CPU利用率可以通過大多數分析器獲得。添加工具可幫助您將其映射到應用程序的域。 –

1

您可以打開Performance Monitor,並已經看到所有的性能計數器.Net(和Windows)給你開箱。這包括內存使用情況,CPU利用率,鎖定爭用,異常情況等。

您可以添加自己的特定性能計數器,並在使用PerformanceCounter