翻譯|使用教程|編輯:莫成敏|2019-12-27 13:57:12.510|閱讀 940 次
概述:本文介紹了6個關于.NET性能建議的技巧,現在就來了解一下吧~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
ANTS Performance Profiler是一種用于分析.NET框架支持的以任何語言編寫的應用程序的工具。ANTS性能分析器能分析所有.NET應用程序,包括ASP.NET網絡應用程序、Windows服務和COM+應用程序。ANTS性能分析器能在幾分鐘內識別性能瓶頸,運行非常快速,且響應時,對程序的執行具有最低影響。
ANTS性能分析器可用作一種獨立工具,也可用作Red Gate .NET Developer Bundle的一部分。本文介紹了6個關于.NET性能建議的技巧,現在就來了解一下吧~
點擊下載ANTS Performance Profiler正式版
技巧1:如果必須在代碼中測量較小的時間差異,請確保使用StopWatch類
DateTime.UtcNow不是為高精度計時而設計的,并且通常具有超過10ms的分辨率,使其不適合測量小時間段。 StopWatch類是為此目的而設計的,盡管要當心使用StopWatch工具結束整個代碼庫。
技巧2:充分利用所有瓶頸來提高.NET性能
雖然Async-Await習慣運作良好,但是架構模式可以切換到更高的檔位。處理多個小型作業時,請考慮將作業部分拆分為特定于資源的塊。然后為每個資源創建單獨的線程,并在兩者之間放置內存緩沖區。目標是在任何給定的計算機上充分利用任何資源作為.NET性能的瓶頸。
例如,在下圖中,應用程序包含四個步驟。
它首先從磁盤讀取文件,對其進行一些處理,將結果存儲在數據庫中,最后刪除該文件。每個紅色框是一個單獨的線程,每個垂直的“泳道”代表一個特定的資源。該過程從上到下流動,并使用隊列作為每個資源交換機之間的緩沖區。
技巧3:使用防御性編碼技術,例如在可行的情況下執行空檢查,以避免在運行時出現NullReferenceExceptions
異常可能很慢,應只在特殊情況下使用,而不是用于一般控制流程。與其假設一個對象在運行時不會為空,而是使用防御性編碼以確保您的代碼僅作用于非空的對象。這將通過引發更少的異常來幫助.NET性能,并確保更健壯和可靠的應用程序。
技巧4:假定.NET性能問題是您的錯,除非您有相反的證據
當出現.NET性能問題時,很容易將責任歸咎于系統代碼、第三方庫,甚至.NET框架本身。但是,在幾乎所有情況下,您的應用程序都在濫用他人的代碼,因此在責怪其他人之前,請確保您有確鑿的證據證明問題出在其他地方。
技巧5:預先準備.NET性能優化項目
好的.NET性能優化項目需要在四個關鍵領域進行適當的準備。
創建一個測試環境,您可以在其中再現一致的.NET性能行為。理想情況下,如果您多次運行該工具,則希望它顯示出相同的.NET性能。沒有這樣的測試環境,不要開始優化。
在進行任何更改以用作基準之前,請測量.NET性能KPI。更改代碼后,將性能與基準進行比較。如果更改使代碼更快,那么新的測試結果就是您的新基準。如果不是,請撤消更改并繼續使用.NET Profiler工具(如ANTS Performance Profiler)進行分析。
不要同時改變太多。進行小的更改,進行度量,然后決定是否要保留更改。如果進行多項更改,那么一項更改可以使您的代碼更快,而另一項更改可能會破壞積極的效果。
永遠不要猜,測量!獲取一個像ANTS這樣的.NET探查器工具,并使用它來發現.NET性能瓶頸。在許多情況下,性能殺手是您意想不到的。避免僅僅因為感覺性能不好而優化代碼。
技巧6:在優化代碼之前,先對應用程序進行分析,以便了解瓶頸在哪里
這是很多地方都在說的話,但我想再說一遍,因為它是如此重要。即使使用Visual Studio中有限的.NET分析器工具來分析應用程序中的性能問題也將有所幫助。借助ANTS Performance Profiler等專業的.NET Profiler工具,您將發現有關瓶頸的更多信息,并且能夠更快地執行更多操作。
本教程內容到這里就結束了,希望對您有所幫助~您可以下載ANTS Performance Profiler試用版免費評估~
想要購買產品正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: