概要
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を使用したほうがいい模様。