特注のワイヤ プロトコルを使用して TCP 経由で送信されたメッセージを処理するコーデックを作成しています。デコード プロセス中に、多数String
の 、 、BigDecimal
および日付を作成します。クライアント/サーバー アクセス パターンは、クライアントがリクエストを発行し、何千ものレスポンス メッセージをデコードすることが一般的であることを意味します 。String
BigDecimal
したがってInternPool<T>
、オブジェクトの各クラスをインターンできるクラスを作成しました。内部的に、プールはWeakHashMap<T, WeakReference<T>>
. 例えば:
InternPool<BigDecimal> pool = new InternPool<BigDecimal>();
...
// Read BigDecimal from in buffer and then intern.
BigDecimal quantity = pool.intern(readBigDecimal(in));
私の質問: InternPool
forを使用していますが、PermGen スペースを使用すると思われる'sメソッドの代わりにBigDecimal
for を使用することも検討する必要がありますか? PermGen スペースを使用する利点は何ですか?String
String
intern()