我正在对大文件(>100Go)进行排序,并且为了减少在磁盘写入上花费的时间,我正在尝试使用 GNU sort 的--compress-program
参数。(相关:如何对大文件进行排序?)
但是,在某些情况下似乎只有第一个临时文件被压缩。我想知道为什么,以及我可以做些什么来压缩所有临时文件。
我在用:
sort (GNU coreutils) 8.25
lzop 1.03
/ LZO library 2.09
重现问题的步骤:
你需要一些东西,比如 ~15Go 空闲空间,~10Go ram,一段时间
首先,使用以下 C 代码创建一个 10Go 文件:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
unsigned long n;
unsigned char i;
srand(42);
for(n = 0; n < 1000000000; n++) {
for(i = 0; i < 3; i++) {
printf("%03d", rand() % 1000);
}
printf("\n");
}
fflush(stdout);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并运行它:
$ gcc -Wall -O3 -o generate generate.c
$ …
Run Code Online (Sandbox Code Playgroud)