出力ストリームのパフォーマンスの比較

御堂:

私は直列化可能なオブジェクトを持っていると私は、ファイルにそれを書き留めたいです。私は使用すべきObjectOutputStream.writeObject()か、に変換byte[](使用ObjectOutputStream後、使用してください)FileOutputStream.write()

ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(file))
objectOutputStream.writeObject(myObject);

若しくは

ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream out;
out = new ObjectOutputStream(byteOut);
out.writeObject(myObject);
new FileOutputStream(file).write(byteOut.toByteArray());
ジョンKugelman:

バッファリングは、より大きなバルクの書き込みに小さな書き込みを合体することで、パフォーマンスを向上させることができます。あなたは、使用Aバッファリングを導入したい場合はBufferedOutputStream、あなたが下流のコードを変更せずにバイト配列ストリームでやっていることありません。

// Unbuffered
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(file));

// Buffered
ObjectOutputStream outputStream = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(file)));

この方法は、あなたが使用し続けることができますObjectOutputStreamストリームはバッファ付きまたはバッファなしているかどうかを知るために持つ残りのコードなし。

任意のパフォーマンス関連の変更と同じように、あなたはベンチマークの両方が優れている行いを見て近づいはずです。実証的なテストなしでこのような変更を加えないでください。あなたがテストしていない場合は、あなただけ推測しています。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=359968&siteId=1
おすすめ