我们将日志文件压缩以节省空间。通常我们将它们压缩,然后做
gunzip -c file.gz | grep 'test'
Run Code Online (Sandbox Code Playgroud)
查找重要信息,但我们想知道将文件解压缩然后执行 grep 是否更快。
cat file | grep 'test'
Run Code Online (Sandbox Code Playgroud)
如果将 gzip 读入内存并解压缩,那么第一个会更快,但如果没有,那么第二个会更快。有谁知道 gzip 如何解压缩数据?
捕获未压缩文件总是会更快,因为没有与之相关的开销。即使您不编写临时文件,您也会经历解压动作,这会消耗 CPU。如果您经常访问这些文件,如果有足够的空间,最好不要压缩它们。
也就是说,将数据转储到标准输出(gunzip -c、zcat 等)不会触发写入临时文件。数据直接通过管道传输到grep
命令,该命令将未压缩的流视为它自己的标准。
关于 LZ* 编码的维基百科文章在这里:http : //en.wikipedia.org/wiki/LZ77_and_LZ78。
归档时间: |
|
查看次数: |
10589 次 |
最近记录: |