.NET 性能優化小技巧 Intro 之前做了簡訊發送速度的提升,在大師的指導下,發送簡訊的速度有了極大的提升,學到了一些提升 .NET 性能的一些小技巧 HttpClient 優化 關於使用 ,大概很多人都知道儘量使用單例以提升 的性能。 由於 在發送請求時需要進行功能變數名稱解析,使用的時候第一次一般來 ...
.NET 性能優化小技巧
Intro
之前做了簡訊發送速度的提升,在大師的指導下,發送簡訊的速度有了極大的提升,學到了一些提升 .NET 性能的一些小技巧
HttpClient 優化
關於使用 HttpClient
,大概很多人都知道儘量使用單例以提升 HttpClient
的性能。
由於 HttpClient
在發送請求時需要進行功能變數名稱解析,使用的時候第一次一般來說會慢一些,我們在 HttpClient
初始化完成之後,向目標地址發送一個 HEAD
請求,這樣會把功能變數名稱解析結果有一個緩存,實際去請求的時候所需用的功能變數名稱解析的時間就會減少了,這樣就可以提升第一次實際發送請求的速度。
HttpClient
的超時時間設置儘可能短以避免超長等待提升響應時間
同步操作優化
原來的同步操作,可以改為非同步處理的使用非同步方法處理,
如查詢資料庫等操作大多可以改為非同步操作,減少線程阻塞,進一步提高 CPU 的利用率。
多個任務的調度,可以不需要關心一個任務調度的話就可以同時啟動任務而且無需等待。
數據結構優化
在使用較多的 Model
處考慮 Model
中是否有較多的無用欄位,如果有可以考慮用一個新的輕量級的 Model
,優化 Model
數據結構優化記憶體存儲。
緩存
重覆使用的值緩存起來(根據數據需要選擇使用緩存類型,變數緩存或記憶體緩存或redis等分散式緩存),減少資料庫查詢次數
Sql 優化
如果需要同時插入許多數據,儘可能使用
BulkCopy
操作以提升性能更新/查詢條件優化,使用更準確的條件,儘可能使用主鍵查詢和更新
批量更新數據的多次操作能夠合併為一次操作的就合併為一次操作,不能合為一次操作就一次提交,註意防 Sql 註入
複雜 Sql 使用事務時,能在 Sql 中使用事務就在Sql中使用否則在代碼中使用。使用事務時僅在需要開啟事務的地方開啟事務,事務結束就提交事務,不要在事務中摻雜不需要放在事務中處理的資料庫操作
End
感謝大師,跟著大師進行一次性能優化,確實學到好多,自己對一些概念也是理解的更加深入了。