Почему ObjectOutputStream с ByteArrayOutputStream быстрее, чем обычный ObjectOutputStream - PullRequest
0 голосов
/ 22 марта 2019

Я сериализовал 200 000 объектов.Сначала я сделал это с

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("name.ser"));
for (int i = 0; i < 200_000; i++) {
   MyClass object = new MyClass(i);
   out.writeObject(object);
}

, затем так

RandomAccessFile raf = new RandomAccessFile("name.ser", "rw");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(baos);
for (int i = 0; i < 200_000; i++) {
   MyClass object = new MyClass(i);
   out.writeObject(object);
}
raf.write(baos.toByteArray());

А второй был в 8 раз быстрее.Итак, мой вопрос, почему именно это быстрее?Может потому, что я не пишу прямо в файл?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...