看板 C_Sharp 關於我們 聯絡資訊
程式寫作常常會用到替代字串的函式,最簡單就是用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