在我們的VB6應用程序中,我們添加了一些用於跟蹤函數花費時間的實用函數。我們這樣做是爲了跟蹤性能瓶頸。vb.net中函數調用的跟蹤持續時間
基本上,它是如何工作的,有兩個實用函數:StartTickCount()和EndTickCount()。您可以在每個函數中傳遞函數的名稱,函數會在調用StartTickCount()時使用字典來獲取滴答計數,然後在調用EndTickCount()時減去滴答計數。這並不完美,因爲它當然沒有考慮到獲取嘀嘀計數的電話需要時間等,但基本上它適用於我們的目的。在粗端部分的疼痛,確保在每個功能和EndTickCount()在每個出口點開始打電話StartTickCount():
Private Function SomeFuction() as String
' indicate the function started
StartTickCount("MyClass.SomeFunction")
' some logic that causes the function to end
If (some logic) Then
EndTickCount("MyClass.SomeFunction")
Return "Hello!"
End If
' final exit point
EndTickCount("MyClass.SomeFunction")
Return "World"
End Function
反正是有內置的任何功能,既可以通過Visual Studio 2010調試器或在System.Reflection
命名空間中,在VB.NET中做類似的事情?
基本上,我想要的是記錄每個函數被調用的次數,在該函數中花費的時間總量,在該函數中花費的平均秒數以及花費在該函數中的最大時間量該功能中的單個呼叫。
我當然可以手工編寫這(因爲我們已經做了在VB6一次),但如果有現有的工具,使其更容易,我寧願使用它們。
你有沒有考慮使用一個分析器? – 2012-02-15 14:58:36
聽起來像一個分析器可以工作,至少在調試模式下運行。但是我們可能還需要檢查客戶端服務器(不包含VS2010工具)的性能,那麼是否還有任何編碼選項? – 2012-02-15 15:04:15