先通過(guò)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調(diào)用StringBuilder的類(lèi),但這也不能說(shuō)明String.Format比StringBuilder快,也或者說(shuō)StringBuilder比String.Format更快,
只能說(shuō)基本上是半斤八兩(當(dāng)然極限的時(shí)候還是有區(qū)別的,StringBuild的效率還是根據(jù)一些因素決定的,其中包括串連的數(shù)目、字符串的大小等等,
但最少以我們平時(shí)的編碼的小數(shù)量來(lái)說(shuō),這樣的區(qū)別可以忽略吧,對(duì)于目前的開(kāi)發(fā)應(yīng)用來(lái)說(shuō),沒(méi)必要非得要分出個(gè)勝負(fù),看應(yīng)用場(chǎng)合吧)。
PS:StringBuilder它是首先在創(chuàng)建字符串的時(shí)候同時(shí)創(chuàng)造一個(gè)緩沖區(qū)域,在對(duì)StringBuilder操作改變字符串?dāng)?shù)據(jù)值時(shí),
StringBuilder會(huì)先檢查緩沖區(qū)的大小是否足夠容納新的字符串?dāng)?shù)據(jù)。如果不夠,則緩沖區(qū)的大小就會(huì)增加預(yù)先決定的數(shù)量。
由于大幅降低內(nèi)存配置操作的發(fā)生機(jī)率,因此當(dāng)然能有效提升效能。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。