2010-09-08 5 views
0

Я сериализую большой 3D-массив на диск. Исходные данные составляют около 50 МБ, а выход GZiped - в размере Kb. Но операция занимает около 5 секунд. Я бы хотел оптимизируйте его на время. Я думал о погоде, было бы лучше использовать сопоставленное чтение/запись, так как я видел, что он имеет better performance, чем обычная запись потока. Но не знаю, как использовать ObjectOutputStream и GZIPOutputStream вместе с mappped write. Пожалуйста, предлагайте погоду, стоит ли использовать сопоставленные чтения/записи вместе с потоком вывода объекта, а также, пожалуйста, отправьте любой пример кода, если у кого-то есть опыт, делающий то же самое.Java GZip объект и сериализуйте его с помощью MappedByteBuffer

ответ

1

Страница, с которой вы связались, показывает худшую производительность для сопоставленной записи. Он работает только с обычным потоком операций чтения и поиска. Поэтому я предполагаю, что это не поможет вам, так как ObjectOutputStream и GZipOutputStream - простые приложения для записи.

+0

Извините, не отображенный режим записи. Что я имел в виду, это режим чтения/записи – Emil

+0

Вы используете режим чтения/записи? Вы сказали, что пишете что-то на диск с помощью ObjectOutputStream. Звучит только для записи. – Thilo

+0

На самом деле, я должен прочитать его снова после записи. Это на самом деле 3 3D-массива фильтрованных данных. Фильтрование - дорогостоящий процесс, а также если я буду хранить эти массивы в памяти, он будет забивать память, так что пока пока не будет используйте для отфильтрованных данных, он будет на диске. При необходимости он будет считан. – Emil