2016-10-24 7 views
0

ちょっと皮肉ですが、BufferedReaderを使用して2GBの.csvファイルを1行ずつ読み込んだとき、約4.5秒かかりました。私は約230MBになったgzipでファイルを圧縮しました。私はBufferedReaderでラップされたGZIPInputStreamを使って.gzファイルを読みました。それは約8.5秒かかりました。.csvファイルを.gzと同じファイルを読み込むよりも速く読み取る

私は、InputStreamインターフェースがReadersとは違ってデータのバイトを読み込むことを知っていますが、200MBのファイルがメモリにロードされるほうが速いと判断したとします。 .gzを使用してパフォーマンスを向上させることは可能ですか?ありがとう。

答えて

2

GZIPInputStreamは、ファイルを読み込んでいるときにファイルを解凍しています。 余分な時間を説明するために、解凍するにはオーバーヘッドがあります。

+0

はい、それは私の疑いです。私の質問は、圧縮されたファイルを読んで何らかの形でパフォーマンスが向上するかどうかです。私はバッファサイズで微調整しようとしましたが、それは助けにはなりませんでした。私は、圧縮がIOの集中的なタスクであると想定しているため、CPUのタスク時間を邪魔することはありません。私が間違っていると思うなら、Plzは私を修正します。 –

+0

圧縮歪みCPU more。あなたは基本的にディスク上のスペースを交換してCPU使用量を増やしています –

0

コンピュータがファイルの解凍にどれくらい時間がかかりますか?私は8.5 - 4.5 = 4秒くらいでしょうか?私はそれが余分な時間のための1つの理由だと思います。

関連する問題