3
A
回答
1
我假设你正在使用split -b
这比通过行分割更具CPU效率,但仍读取整个输入文件并将其写入每个文件。如果split
这部分的执行的串行性质是您的瓶颈,则可以使用dd
并行提取文件的块。对于每个并行进程,您将需要一个不同的dd
命令。这里有一个例子命令行(假设the_input_file
是一个大文件这种提取位从中间):
dd skip=400 count=1 if=the_input_file bs=512 of=_output
为了使这项工作,你需要选择的count
和bs
适当的值(以上这些都是非常小) 。每个工人还需要选择不同的值skip
,以便块不重叠。但这是有效的; dd
执行skip
查找操作。
当然,这仍然不如实现数据使用者进程那样有效,因为它可以直接读取指定的输入文件块,并与其他类似的使用者进程并行读取。但我假设你能做到这一点,你不会问这个问题。
0
鉴于这是一个OS实用程序,我倾向于认为它已经过优化以获得最佳性能。
您可以看到this question(或执行man -k split
或man split
)来查找可能可以使用的相关命令,而不是split
。
如果您正在考虑在C语言中实现您自己的解决方案,那么我建议您针对您自己的特定系统/环境和一些示例数据运行一些基准测试,并确定使用什么工具。
注意:如果您不打算经常这样做,那么可能不值得您花时间思考这个问题,只要继续并使用一个工具即可完成您需要的工作(在这种情况下split
)
相关问题
- 1. UNIX中的文件拆分
- 2. Unix拆分功能将文件拆分成多个文件:拆分记录
- 3. 拆分unix输出
- 4. 如何拆分unix日志文件输出中的行
- 5. 拆分unix文件并将文件名保存在文本文件中
- 6. UNIX shell脚本:它的条目拆分文本文件
- 7. 如何在unix命令行中拆分大型csv文件
- 8. Unix - 将包含XML文件的文件拆分为单个文件
- 9. 拆分功能在UNIX
- 10. 分割文件 - UNIX
- 11. 拆分文本文件中的R
- 12. Java中的文本文件拆分库
- 13. 拆分WIX文件
- 14. 拆分HTML文件
- 15. 拆分TIFF文件
- 16. 拆分csv文件
- 17. NLog文件拆分
- 18. 拆分csv文件
- 19. unix使用循环,awk和拆分拆分FASTA
- 20. 拆分的XML文件
- 21. 拆分庞大的文件
- 22. 在文本文件中拆分文本
- 23. 拆分文本文件
- 24. 拆分文本文件
- 25. 在ruby中拆分文本文件
- 26. 从文件中拆分文本
- 27. 在文本文件中拆分列
- 28. 在Python中拆分文本文件
- 29. 在Android中拆分文本文件
- 30. 文件拆分中缺少的行
不确定什么要求在这个问题上-1,但没关系 – Abhi