我最近讀到所有JRE 6 Java VM Options]可用的JVM參數,並看到這個:JVM -XX:+ StringCache參數?
-XX:+ StringCache:允許常用分配字符串緩存。
現在我一直的印象是Java的保持實習池下(正確的字?)字符串和做一些像字符串連接時與文字它沒有創建新的對象,但此池中拉他們。有沒有人曾經使用這個論點,或者可以解釋爲什麼需要這個論點?
編輯:我試圖運行一個基準測試,看看這個參數是否有任何影響,並且無法讓Sun JVM識別它。這是:
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode,
sharing)
所以我不知道這個參數是否可以工作。
我想大部分的字符串操作,不使用實習。 JVM使用interning來存儲類文件中的字符串值,並避免由於重複而導致內存消耗過多。 – akarnokd 2009-06-26 16:17:48
偉大的問題。太陽文檔在這裏非常不清楚。然而,關於實習的文檔很清楚,它只在特定情況下(字符串文字)運行,所以JVM arg或許在更廣泛的情況下應用這種行爲。 – 2009-06-26 16:21:47