String.Format和StringBuilder的效率
生活随笔
收集整理的這篇文章主要介紹了
String.Format和StringBuilder的效率
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
到底String.Format還是StringBuilder效率更高一點?至于這個問題,
直接叫他用強大的武器Reflector了解一下String.Format的方法.
結果他很快就找出相關的代碼: ?public?static?string?Format(IFormatProvider?provider,?string?format,?params?object[]?args)
{????
??if?((format?==?null)?||?(args?==?null))????
??{????????
??throw?new?ArgumentNullException((format?==?null)???"format"?:?"args");????
??}????
??StringBuilder?builder?=?new?StringBuilder(format.Length?+?(args.Length?*?8));????
但最少以我們平時的編碼的小數量來說,這樣的區別可以忽略吧,對于目前的開發應用來說,沒必要非得要分出個勝負,看應用場合吧)。
PS:StringBuilder它是首先在創建字符串的時候同時創造一個緩沖區域,在對StringBuilder操作改變字符串數據值時,
StringBuilder會先檢查緩沖區的大小是否足夠容納新的字符串數據。如果不夠,則緩沖區的大小就會增加預先決定的數量。
由于大幅降低內存配置操作的發生機率,因此當然能有效提升效能。
直接叫他用強大的武器Reflector了解一下String.Format的方法.
結果他很快就找出相關的代碼: ?public?static?string?Format(IFormatProvider?provider,?string?format,?params?object[]?args)
{????
??if?((format?==?null)?||?(args?==?null))????
??{????????
??throw?new?ArgumentNullException((format?==?null)???"format"?:?"args");????
??}????
??StringBuilder?builder?=?new?StringBuilder(format.Length?+?(args.Length?*?8));????
? builder.AppendFormat(provider,?format,?args);????
??return?builder.ToString();
}
?很顯然,String.Format調用StringBuilder的類,但這也不能說明String.Format比StringBuilder快,也或者說StringBuilder比String.Format更快,
只能說基本上是半斤八兩(當然極限的時候還是有區別的,StringBuild的效率還是根據一些因素決定的,其中包括串連的數目、字符串的大小等等,但最少以我們平時的編碼的小數量來說,這樣的區別可以忽略吧,對于目前的開發應用來說,沒必要非得要分出個勝負,看應用場合吧)。
PS:StringBuilder它是首先在創建字符串的時候同時創造一個緩沖區域,在對StringBuilder操作改變字符串數據值時,
StringBuilder會先檢查緩沖區的大小是否足夠容納新的字符串數據。如果不夠,則緩沖區的大小就會增加預先決定的數量。
由于大幅降低內存配置操作的發生機率,因此當然能有效提升效能。
總結
以上是生活随笔為你收集整理的String.Format和StringBuilder的效率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android模块化 osgi,蚂蚁金融
- 下一篇: 开源cms - 资料收集