作者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
推 icant:文章中的自定 需求應該是case insenstive?... 08/29 23:57
→ icant:String.Replace要達成需求 要另外處理(如:ToUpper) 08/29 23:58
→ icant:速度就被拖下來了 08/29 23:59