String Pool
2016年11月22日 星期二
string pool簡單說就是一個Hash Table ,其中Key值是字串內容,Value是物件實體位置。
內容值會在程式編譯時期做初始設定,將程式碼中用到的用串加入,所以不同字串變數存放的靜態字串,
若是一樣的字串,字串會在編輯時期加入String Pool,透過String Pool的協助兩個變數會指到相同的物件實體。
一般的字串比對底層是以Byte為基礎的方式去比對,當比對的字串很長時,整個處理效能就跟著低落,若是可以善用
string pool,我們只需比對兩者是否指到相同的物件實體就可以了,可以獲得較佳的效能。
參考Larry大的文章,用ReferenceEquals效能是較好的。
一、編譯時期就決定
執行結果
二、動態產生
執行結果
三、將動態產生字串加入String Pool
執行結果
參考:https://dotblogs.com.tw/larrynung/archive/2011/06/30/30763.aspx
0 意見:
張貼留言