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