天天看點

String.intern測試場景測試結果結論

從檔案中讀取 100w行一樣的字元串,加到list,評測時間和記憶體和gc。

場景

參數

時間

記憶體

gc

場景一

-Xmx128m

224

65346296

2次minor gc

-Xmx32m

oom

場景二

334

29105000

1563

19714208

12次minor gc

場景三

222

29511112

2次minior gc

1751

24794176

在記憶體足夠的情況下,可以是用guava Interner,或者String.intern,或者不用,三者差別不大

在記憶體有限的情況下,可以考慮 guava Interner,或者String.intern

String.intern隻能用在String對象,而guava Interner可以任何非空的object

guava Interner的對象可以是弱引用或是強引用放在記憶體中,而String.intern存放在常量表中(7以後也放在堆中)