作者tomex (Tomex Ou)
看板C_Sharp
标题[心得] 各种字串Replace()效能比较?
时间Fri Aug 29 23:43:01 2008
程式写作常常会用到替代字串的函式,最简单就是用string.Replace()
但字串操作有记忆体增大的隐忧产生。
也陆续看了一些替代法,这篇文章有讲到:
http://www.codeproject.com/KB/string/fastestcscaseinsstringrep.aspx
为了追求真理,我对里头的code作了实验,包括reply文章中的建议函式
但发现作者精心调校的函式,反而都最慢
最後是String.Replace()最快~~ (不考虑记忆体用途)
这篇文章是2005年发表的,
表示微软在这3年有对.Net Framework CLR函式作调校
我们用相关函数indexof却变得更慢了...
结论:
为了追求真理使了劲,最後发现事情却非预期,白白浪费时间!
精进研究的投资,似乎在短期内都不会有所回报,唉~~
执行1000次,效能:
自订函式: 0.14895426653387511秒
StringBuilder.Replace(): 0.059551144069986552秒
String.Replace(): 0.021925342466710154秒
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.114.60
1F:推 icant:文章中的自定 需求应该是case insenstive?... 08/29 23:57
2F:→ icant:String.Replace要达成需求 要另外处理(如:ToUpper) 08/29 23:58
3F:→ icant:速度就被拖下来了 08/29 23:59