读取 .csv 文件比读取压缩为 .gz 的同一文件更快

Reading a .csv file faster than reading same file compressed as .gz

似乎有点讽刺,但是当我使用 BufferedReader 逐行读取一个 2GB 的 .csv 文件时,大约需要 4.5 秒。我用 gzip 压缩了大约 230MB 的文件。我使用包裹有 BufferedReader 的 GZIPInputStream 来读取 .gz 文件。大约用了 8.5 秒。

我知道 InputStream 接口读取数据字节而不是 Readers,但我假设如果一个 200MB 的文件被证明可以更快地加载到内存中。使用 .gz 是否有可能获得更好的性能?谢谢。

GZIPInputStream 在读入文件时解压缩文件。 解压缩有一些开销可以解释所花费的额外时间。

您的计算机解压缩文件需要多长时间?我可以猜一下 8.5 - 4.5 = 4 秒吗?我想这是花费额外时间的原因之一。