2010-01-07 51 views
4

我想從我的公司正在開發的應用程序中獲取一些詳細的性能信息。我試圖得到的信息的例子是網絡交易需要多長時間,應用程序使用多少CPU /內存,完成給定方法需要多長時間等。執行性能日誌記錄的好方法(C#)

我有一些失敗的嘗試在這個過去(就像試圖通過使用DateTime.Now測量小時間段)。最重要的是,我對獲取CPU和內存統計信息知之甚少。有沒有好的.Net類,庫或框架可以幫助我收集這類信息和/或將其記錄到文本文件中?

+0

System.Diagnostics.Stopwatch可能比使用日期時間更好。 – Jacob 2010-01-07 04:53:48

+0

你,朋友,是我的英雄。我知道有更好的方法... – Phil 2010-01-07 05:03:54

回答

0

性能計數器是一種方法,System.Diagnostics.Stopwatch類是尋找此功能的好地方。使用性能計數器(除了提供的性能計數器),您需要同時管理跟蹤事件的基礎結構以及報告數據。性能計數器基類提供連接到事件日誌的連接詳細信息,但是如果需要以其他方式(例如日誌文件或數據庫)報告數據,則需要提供其他報告基礎結構。

秒錶類是高性能計時器的一個包裝,可以根據處理器或平臺給出微秒或納秒的分辨率。如果您不需要那麼高的分辨率,您可以使用System.DateTime..Now.Ticks獲取處理器時鐘的當前滴答計數,並與其進行差分運算,從而爲大多數操作提供毫秒級或更高的精度。

跟蹤CPU統計信息時,請注意多個處理器和多個內核會在某些情況下使任何精確的統計信息複雜化。

性能計數器的最後一個注意事項是,請注意並非所有計算機都在所有計算機上。例如,在沒有安裝IIS的計算機上不存在ASP.NET計數器等。

+0

命名失敗:秒錶不是性能計數器。 – 2010-01-07 09:55:46

+0

高性能計時器。感謝您的更正。 – GrayWizardx 2010-01-07 16:29:49