2011-10-11 71 views

回答

1

我已經看到使用PostSharp AOP框架完成了這項工作,該工具掛鉤到Windows性能計數器(System.Diagnostics.PerformanceCounter)中。他們的一個入門的示例代碼片段展示瞭如何做到這一點:

http://www.sharpcrafters.com/solutions/performance

,如果你想在現場的方式部署這些測量到生產和測量性能(做的診斷,這可能是一個不錯的選擇一個運行系統)。

如果你只是想找到你的代碼中的瓶頸,而不需要做現場診斷,我建議你簡單地使用一個分析器,比如內置於VS或Ants Profiler(正如克里斯已經提出的那樣)的分析器。然後根據您的代碼運行生產數據的編輯副本,以便您的性能測量與生產匹配。

+0

我不需要實時監控這些。我的問題是,應用程序正在10個不同的客戶位置運行。在這10個位置中,給定的功能運行緩慢3。我無法在這些客戶位置上描述應用程序,但是如果我有某種類型的儀器,它會給我一些關於哪些方法需要很長時間的想法。 –

+0

@Silverlight:如果它已經在運行,並且你不能重新部署,那麼你可能會被卡住。但是如果你可以重新部署,那麼性能計數器就是標準的方法,你可以通過AOP使用這些性能計數器來測試你的代碼。我在這裏錯誤地使用了「實時」 - 我的意思是,您可以在運行系統中針對呼叫進行實時測量,而不是依賴於在相同場景下重複複製。我編輯了我的答案以刪除不正確的字詞:) –

1

如果你想在運行時,你應該使用離線探查器。我會盡可能避免使用任何儀器,因爲這需要時間,因此會導致更多性能問題。

Google for RedGate ANTS Profiler或JetBrains dotTrace。如果您擁有VS2010 Premium,則它內置了一個。這將爲您提供方法級別的時間細分。

0

通常情況下,分析器將負責測量性能。

如果您需要自己測量時間帶有某種跟蹤的秒錶通常就足夠了。