- PR -

シリアライズできないオブジェクトが消費するメモリサイズをしらべたい

1
投稿者投稿内容
せんべい
ベテラン
会議室デビュー日: 2002/10/23
投稿数: 61
お住まい・勤務地: 神奈川県川崎市
投稿日時: 2005-08-25 19:34
台風が来そうですがまだ会社です。

現在、シリアライズできないオブジェクトが消費するメモリサイズを
調べたいと考えています。シリアライズ可能なオブジェクトならば
方法はあるのですが・・・

どなたかご存知の方はご教授ください。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-08-25 22:38
JREの実装によって変わると思いますが、
参考までに昔調べてみた時の記憶で書いてみます。

java.lang.Object -> 8 byte
これをオブジェクトが使う最小限のメモリです。
配列は12(16かも??)+要素サイズの合計だったかと。

JRE 5.0のjava.lang.Stringだったら、
 private final char value[];
 private final int offset;
 private final int count;
 private int hash;

8(java.lang.Object) + 4 * 4(フィールド数) + 12(配列)に
2 * 文字数で、36 + 2 * 文字数 byteを消費することになります。

#この数値はヒープの減り具合から割り出してます。
#8 byteの内訳はvtblと同期オブジェクトへのポインタ?
1

スキルアップ/キャリアアップ(JOB@IT)