String Pool

2016年11月22日 星期二

 

string pool簡單說就是一個Hash Table ,其中Key值是字串內容,Value是物件實體位置。

內容值會在程式編譯時期做初始設定,將程式碼中用到的用串加入,所以不同字串變數存放的靜態字串,

若是一樣的字串,字串會在編輯時期加入String Pool,透過String Pool的協助兩個變數會指到相同的物件實體。

 

一般的字串比對底層是以Byte為基礎的方式去比對,當比對的字串很長時,整個處理效能就跟著低落,若是可以善用

string pool,我們只需比對兩者是否指到相同的物件實體就可以了,可以獲得較佳的效能。

參考Larry大的文章,用ReferenceEquals效能是較好的。

 

2016-11-22 下午 11-29-52

執行結果

2016-11-22 下午 11-30-24

 

2016-11-22 下午 11-31-26

執行結果

2016-11-22 下午 11-32-18

2016-11-22 下午 11-34-13

執行結果

2016-11-22 下午 11-34-25

 

 

 

參考:https://dotblogs.com.tw/larrynung/archive/2011/06/30/30763.aspx

0 意見: