如何将这些gzip方法更改为xz?
这似乎有效但运行真的非常慢......(~20-30x)
// gzip
... | gzip -c -1 > /path
// xz
... | xz -zf > /path
尚未对此进行测试,但这是用xz压缩的方法吗?
// gzip
tar -zcf /path /path
// xz
tar -Jcf /path /path
答案 0 :(得分:2)
我遇到了同样的问题,并对大型(~2GB)纯文本日志文件进行了一些测试。
事实证明,xz -0
,即使用0级压缩,更快,会产生小得多的文件。
time gzip -vc -9 test.log.1 > logs/test.log.gz9
real 2m34.079s
user 1m54.365s
sys 0m4.385s
time xz -vc -0 test.log.1 > logs/test.log.xz0
100 % 53.1 MiB / 1,273.3 MiB = 0.042 11 MiB/s 1:53
real 1m53.779s
user 1m25.295s
sys 0m4.270s
time xz -vc -6 test.log.1 > logs/test.log.xz6
test.log.1 (1/1)
100 % 53.9 MiB / 1,273.3 MiB = 0.042 798 KiB/s 27:13
real 27m13.968s
user 26m57.925s
sys 0m5.800s
-rw-r--r-- 1 root root 95M Sep 9 15:30 test.log.gz9
-rw-r--r-- 1 root root 54M Sep 9 15:38 test.log.xz0
-rw-r--r-- 1 root root 54M Sep 9 16:11 test.log.xz6
这些测试是在带有Ubuntu 14.4的arm
迷你电脑上运行的
请注意,xz -0
和xz -6
之间的结果文件大小几乎没有差异(默认值)。
我甚至投票将xz -0
设为默认值
在常规计算机上,xz -0
稍慢并导致小得多文件(输入文件为4.2GB):
time tar -I 'xz -0' -cvf out.txz test.log
real 1m46.718s
user 1m42.000s
sys 0m23.084s
time tar -zcvf out.tgz test.log
real 1m13.778s
user 1m9.800s
sys 0m11.544s
-rw-rw-r-- 1 root root 231M Sep 13 09:23 out.tgz
-rw-rw-r-- 1 root root 125M Sep 13 09:37 out.txz
-rw-rw-r-- 1 root root 4.2G Sep 13 09:07 test.log
来自this answer:
tar -I 'xz -0' -cvf out.txz test.log
可能会加快您的归档速度,但肯定会为您提供较小的文件。
答案 1 :(得分:1)
没有免费午餐这样的东西。如果你想要更好的压缩,它将需要更多的时间(和内存)。您可以尝试降低压缩级别以获得更高的速度。默认值为xz -6
,因此您可以尝试级别0到5,以查看是否有时间与压缩相关的快乐地点。 (您不需要-zf
。)