2008年8月4日 星期一

善用 StringBuilder 類別

通常許多人處理字串串連時,都會用 + 這個運算子來處理
但是這雖然也是可以正常處理字串相加,不過對系統效能上卻造成極大的負擔
這是因為使用 string 這個類別時會配置一段記憶體來儲存字串
而當以 + 運算子處理字串相加時或字串資料變更時
系統必須配置一段新的記憶體來儲存新字串的動作 (如兩字串相加後的新字串)
再反配置舊的記憶體
每次配置記憶體和反配置都會造成 CLR 的工作
當然這些動作都是在幕後處理完成,每次處理的時間非常的短
但是如果大量處理這些字串運算或大塊記憶體時,累加起來的時間就不只是如此了
尤其是在 Web 伺服器上執行的 ASP.Net 應用程式來說更是會造成嚴重的影響

而 StringBuilder 物件則不同,它會保留自己的字串緩衝區
所有的動作都在同一塊記憶體工作,減少記憶體配置的動作
除非緩衝區大小不夠處理時,才會作記憶體重新配置
自然能有效提升效能

原文出處

沒有留言:

自訂權限驗證機制

// 使用 filter [Route("api/[controller]")] [ApiController] [Authorize] [TypeFilter(typeof(CustomAsyncAuthorizationFilter))] public c...