セッションに保存されている各データ型 (各オブジェクトを構成する) のサイズをプログラムで測定する以外に、クリーンで簡単に測定する方法はありますか?
3 に答える
MessAdminを使用すると、HttpSession のサイズを計算できますが、一時的なオブジェクトのサイズを計算する方法は不明です。
HttpSession オブジェクトのおおよそのサイズを取得することは、実稼働環境では無駄なことであり、制御された環境ではより正確なサイズを取得する可能性が高いようです。
注意すべきことの 1 つは、シリアル化されたセッション オブジェクトのサイズは、文字エンコーディングの変更により不正確になるということです。Java の文字列は UTF-16 形式で保存されますが、出力ストリームは別のエンコーディングである可能性があります。Java でオブジェクトのサイズを計算することが問題になる理由の詳細については、このJavaWorld の記事 を参照してください。
ここには、 Java Web パーツlibの一部である、渡された HttpSession オブジェクトのサイズを返す関数を持つSessionSize クラスがあります。
セッション コンテンツはシリアライズ可能である必要があります。したがって、それをシリアライズして、結果のバイト配列のサイズを確認してください。
これはメモリ内のサイズと同じではありませんが、大まかな表現として使用できます。
PS 一時的なフィールドがある場合は除外されることに注意してください。