10

アプリケーションのプロファイルを作成すると、ヒープに多くの文字列があることがわかりました。

私の状況では、文字列はヒープ上に作成され、インターンされず、リテラルではありません。

アプリケーション内の文字列の数が非常に多い場合に従う特定の GC チューニング手法はありますか。

GC 設定-XX:+UseCompressedStrings または -XX+UseStringCacheを見つけましたが、これが役立つかどうかはわかりません。これらの設定を試した人はいますか?

Java バージョン "1.6.0_22"
Java(TM) SE ランタイム環境 (ビルド 1.6.0_22-b04)
Java HotSpot(TM) 64 ビット サーバー VM (ビルド 17.1-b03、混合モード)

4

2 に答える 2

9

に関連して-XX:+UseCompressedStrings、次の質問を確認する必要があります: Support for Compressed Strings being Dropped in HotSpot JVM?

に関連し-XX+UseStringCacheて、以下を参照してください: JVM -XX:+StringCache argument?

ところで。Java 7 には、インターンされた文字列を使用するときに文字列キャッシュを調整できる優れた機能が付属しています。-XX:+PrintSTringTableStatisticsおよびを参照してください-XX:StringTableSize=n。このようにして、文字列キャッシュ サイズを最適化できます。

于 2013-04-09T18:31:12.580 に答える