對於在.NET技術中完成的每個應用程序的性能分析和優化,我應該使用哪些技術,您有什麼看法?
你知道哪種調試/跟蹤技術可以強大嗎?
您是否認爲在大型項目中需要定製調試/診斷類?
你是否建議使用應用程序分析器或其他第三方應用程序?.NET調試和跟蹤性能:技巧/隱藏功能?
另一個值得關注的問題是:如何獲取執行方法所花費的時間?
對於在.NET技術中完成的每個應用程序的性能分析和優化,我應該使用哪些技術,您有什麼看法?
你知道哪種調試/跟蹤技術可以強大嗎?
您是否認爲在大型項目中需要定製調試/診斷類?
你是否建議使用應用程序分析器或其他第三方應用程序?.NET調試和跟蹤性能:技巧/隱藏功能?
另一個值得關注的問題是:如何獲取執行方法所花費的時間?
這是語言不可知的建議。如果您獲得了現有應用程序的一些experience doing performance tuning,尤其是較大的應用程序,則可以瞭解我學到的內容。最大的性能殺手是過度設計:太多的抽象層,通知驅動的處理等等。問題在於,抽象的東西會讓你的生活變得更輕鬆,但最終會讓你在沒有你知道的情況下陷入巨大的週期性浪費之中。
這是一個非常通用的問題:)但是下面是一些指導
關於診斷和跟蹤,您可以使用System.Dignostics命名空間中的類,例如TraceListner,您還可以考慮ETW事件以瞭解關鍵代碼路徑(MSDN中的Windows事件跟蹤有很好的參考)。
您可以在System.Dignostics命名空間的內置類的基礎上構建您自己的自定義可視化類。
一個非常有用的工具,你需要在你的抓包中有VS Profiler和CLR profiler分別用於時間分析和內存分析。
您可以使用一個分析器來有關於熱功能的通用高層的想法,你可以使用秒錶類測量時間對於一些選擇的方法,或用於高分辨率時間,你可以使用QueryPerformanceCounter和QueryPerformanceFrequency的Windows APIs的