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