是否有Unix实用程序用于排序包含固定长度二进制记录的大文件?
换句话说,我正在寻找类似sort(1)的东西,但是对于具有固定长度记录的二进制文件.
我可以将文件转换为文本,然后使用sort(1)排序,然后转换回二进制表示,但我正在寻找更多时间和空间效率的东西.
结果证明你很幸运;有一个GNU样式的unix程序就是这样做的:
bsort.
bsort是一种超高效的inplace radix排序实现,在处理大于ram的文件时要特别注意内存访问模式.高效率我的意思是从2014年中期开始能够最好地利用http://sortbenchmark.org的2014年节能10 ^ 8记录排序 – 记录为889焦耳,其早期原型能够在一台股票macbook pro上以335焦耳排序.对于完全适合ram(三位数兆字节)的“小”数据集,它比libc的qsort库快约3倍.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。