unix - 我们如何使用 unix sort 更快地排序?

标签 unix sorting

我们正在对一个包含 37 个字段的 5GB 文件进行排序,并使用 5 个键对其进行排序。大文件由 1000 个每个 5MB 的文件组成。

190 分钟后,它仍然没有完成。

我想知道是否还有其他方法可以加快排序速度。我们选择unix排序是因为我们不希望它耗尽所有内存,所以任何基于内存的方法都是不行的。

对每个文件独立排序,然后使用 -m 选项进行合并排序有什么好处?

最佳答案

使用-S将其缓冲在内存中。例如,要使用(最多)50% 的内存作为排序缓冲区,请执行以下操作:

sort -S 50% file

请注意,现代 Unix sort 可以并行排序。我的经验是它会自动使用尽可能多的核心。您可以直接使用--parallel进行设置。使用 4 个线程排序:

sort --parallel=4 file

总而言之,您应该将所有内容放入一个文件中并执行如下操作:

sort -S 50% --parallel=4 file

关于unix - 我们如何使用 unix sort 更快地排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7074430/

相关文章:

使用 Nulls_Last 处理进行 Spring 排序不起作用

javascript - slice() 方法的问题,数组显然是自动排序的,但实际上并没有

java - 通过 JTextField 的内容搜索 arraylist - arraylist.contains(jtextfield)

linux - 实现Java数据分析工具时的Bash错误

unix - 未创建 .ssh 目录

c - UNIX 中的 pipe 和 dup 函数

PHP按字段排序数组?

linux - 连接 linux 程序输出,并只返回那些重复的

c - 什么时候需要 F_GETFL fcntl 命令的参数?

javascript - 使用 lodash .groupBy。如何为分组输出添加自己的键?