[心得] 各種字串Replace()效能比較?

看板C_Sharp作者 (Tomex Ou)時間17年前 (2008/08/29 23:43), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/1
程式寫作常常會用到替代字串的函式,最簡單就是用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

08/29 23:57, , 1F
文章中的自定 需求應該是case insenstive?...
08/29 23:57, 1F

08/29 23:58, , 2F
String.Replace要達成需求 要另外處理(如:ToUpper)
08/29 23:58, 2F

08/29 23:59, , 3F
速度就被拖下來了
08/29 23:59, 3F
文章代碼(AID): #18k1a7Bd (C_Sharp)