C# String.Format性能分析及与StringBuilder的比较

根据源代码进行分析,format的内部实现也是用的stringbuilder进行处理,在初始化方面,由上图可以看出,初始化stringbuilder容量长度为format首参长度加上辅参个数乘以8.
综上,当辅参平均长度不超过8时,string.format与stringbuilder的效率相同,当辅参平均长度超过8时,format需要对sb进行一次扩容,显然不如初始化既定容量的stringbuilder.

顺便一提关于stringbuilder的使用,根据源代码进行分析,sb的初始化默认容量仅为16,当对通过Append()方法传入字符串使得总长度超出当前长度时,sb也会执行扩容,因此在使用sb时,尽量预先估计好要传入参数的总长度,然后在初始化时进行长度的设定,尽量避免sb内部执行扩容方法,从而提高效率.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值