セッションに格納されている(各オブジェクトが構成する)各データ型のサイズをプログラマチックに測定する以外に、きれいで簡単な方法はありますか?HttpSessionオブジェクトのサイズの測定
答えて
SessionSizeクラスhereには、渡されたHttpSessionオブジェクトのサイズ(Java Web Parts libの一部)を返す関数があります。
セッションの内容はシリアル化可能でなければなりません。したがって、それをシリアル化し、結果のバイト配列のサイズを参照してください。
メモリ内のサイズと同じではありませんが、その大まかな表現として使用できます。
P.S.一時フィールドがある場合は除外されることに注意してください。
MessAdminは、どのようにそれがcalculates the size of transient objectsであるかは不明ですが、HttpSessionサイズを計算できます。
HttpSessionオブジェクトのおおよそのサイズを取得することは、プロダクションでは無駄な作業であり、制御された環境ではより正確なサイズが得られるようです。
シリアル化されたセッションオブジェクトのサイズは、文字エンコーディングの変更により不正確になることに注意してください。Javaの文字列はUTF-16形式で格納されますが、出力ストリームは異なるエンコーディングである可能性があります。 Javaでオブジェクトのサイズを計算するのがなぜ難しいかについての詳細は、JavaWorld articleにあります。
私はstruts-2フレームワークとSpring 3.4をオブジェクトコンテナとして使用するWebアプリケーションでこれを使用しています。セッションサイズは常に-1です。つまり、セッション内のオブジェクトのサイズを計算できません。 –
@Alireza Fattahi私は同じ問題で苦労しました。そして最終的には、セッション属性のサイズを取得するためにMessAdmin-CoreとMessAdmin-AutoProbに加えてMessAdmin-SizeOfプラグインを使用する必要があることが分かりました。 MessAdmin-Serializableを追加することもできます。 – magicbacon
- 1. オブジェクトの認識と測定サイズ
- 2. ViewGroupのサイズを測定
- 3. Linuxのライブラリのサイズを測定する
- 4. Java HttpSessionオブジェクトのライフサイクルは何ですか?
- 5. 静的サイズの測定方法は? WINAPI
- 6. 関数sonarqubeのサイズを測定する
- 7. HttpSessionのTomcatの
- 8. コントローラでHttpSessionオブジェクトを宣言する
- 9. Android:xmlに定義されたサイズの子を測定する
- 10. VariableSizedWrapGridとWrapGridの子どものサイズの測定
- 11. HttpSessionタイムアウト後のリダイレクト
- 12. クッキーなしのHttpSession
- 13. HttpSessionタイムアウト
- 14. は、HttpSessionのにオブジェクトを追加すると、Redisの
- 15. gitリポジトリのサイズ/ MBの増加率を測定しますか?
- 16. 固定サイズのNSData()オブジェクトの宣言
- 17. LibGdxの固定サイズのオブジェクト配列
- 18. HttpSessionがSPRING_SECURITY_CONTEXTのnullオブジェクトを返しました
- 19. URLからダウンロードしたPDFのサイズを測定する方法
- 20. C#プログラムのサイズを測定する方法
- 21. Webリクエストとレスポンスのサイズを測定する
- 22. プログラムでDHTMLの合計転送サイズを測定する
- 23. 2次元配列を測定するオペレータのサイズ
- 24. Javaのボタンに必要なサイズを測定する方法
- 25. はDropwizardのHttpSessionのRedis
- 26. matplotlibのサイズを設定するColorbarBaseオブジェクト
- 27. HttpSession Java EE
- 28. HttpSessionとRequestDispatcher
- 29. HttpSession Null with BlobstoreService
- 30. FutureTaskとHttpSessionの同期
**セッション属性**はシリアライズ可能である必要があります(「そうすることをお勧めします」)。しかし、彼らは**持っていない**。 – ChssPly76
セッションのシリアル化は、アイドルセッションをディスクに保存してメモリを節約するのに効果的な方法です。 Erlangedが直列化不可能なセッションを持つアプリを持っている場合、それは誘導セッションのサイズを測定するのではなく、まず修正することです。 –
Re:必須/必須:コンテナは直列化可能なオブジェクトを受け入れなければならず、他のものを受け入れなければならない(MUST)。また、直列化不可能なものに対してIllegalArgumentExceptionをスローすることがあります。私は、シリアライザブルは、WE-TOLD-YOU-SOのやり方で、かなり多くなければならないと言っています。 –