文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>发现stringbuilder.replate的效率比regex.replate的效率相差一倍

发现stringbuilder.replate的效率比regex.replate的效率相差一倍

时间:2010-11-04  来源:夜闻香

本以为stringbuilder的替换效率也应该比regex的替换效率高一点,但我在实际测试中发现sb在短字符的效率略高,但替换的数据越多,字符串越长,则sb的效率比regex越慢。

可能的原因大概是因为字符串越长,替换过程中在内存中移动数据所需要的步骤就越多,而且sb涉及内存扩容的问题,将产生更多的步骤。

而regex是匹配正则表达式之后,再用string.replate对字符内的文本进行替换,所产生的文本都分配在了新的内存空间。

 

在测试过程中,我一直开着内存监视程序,发现两个方法所消耗的内存都差不多,string.replate产生的消耗大约在10M~20M左右,而stringbuilder的内存开销更小一些。

 

总体感觉,stringbuilder并没有产生我预料的能更高效替换文本的方法,对此表示遗憾。

结论:不要轻易使用StringBuild,sb仅适合大规模的字符追加操作。

另外求助如何在.net中更高效替换字符?

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载