LoginSignup
2
3

More than 5 years have passed since last update.

(Java)serializeされるときのバイトサイズを計算する

Posted at

概要

Javaから利用するキャッシュのキャッシュサイズを検討する際にデータ量を計る方法を調べたので備忘録としてメモを残す。

方法1(ByteArrayOutputStreamの長さを計る)

こちらのほうが正しいらしい。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(target);
oos.flush();
oos.close();
baos.toByteArray().length // ここで取得される値がバイトサイズ

方法2(SerializationUtils.serializeして長さを計る)

SerializationUtils.serialize((Serializable) target).length // ここで取得される値がバイトサイズ

まとめ

ネットで調べるとこれらの2つの方法が見つかった。
私の環境で試す限りどちらで計測してもサイズは変わらなかったが、
方法2だと方法1より大きく値が出てしまい正しい値にならないという記述もあったため、
若干面倒ではあるが方法1を使用したほうがいい模様。

2
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3