1
我有一個包含〜50k文件的目錄。每個文件有〜700000行。我寫了一個awk程序來讀取每一行並只在出現錯誤時纔打印。一切都運行得很好,但所花費的時間是巨大的 - 〜4天!有沒有辦法縮短這個時間?我們可以使用多個核心(進程)嗎?有沒有人嘗試過嗎?使用多線程/內核來提高awk性能
我有一個包含〜50k文件的目錄。每個文件有〜700000行。我寫了一個awk程序來讀取每一行並只在出現錯誤時纔打印。一切都運行得很好,但所花費的時間是巨大的 - 〜4天!有沒有辦法縮短這個時間?我們可以使用多個核心(進程)嗎?有沒有人嘗試過嗎?使用多線程/內核來提高awk性能
awk
和gawk
不會自己修復這個問題。沒有魔術「讓它平行」開關。您將需要重寫到一定程度:
md5sum
並將其存儲在數據庫中,則可以計算新文件的md5sum,如果已經這樣做,則跳過處理。
只有在出現錯誤時纔打印?這是否僅僅是在文件中尋找特定的模式?您是否檢查CPU使用情況以驗證您實際上是否受CPU限制? – nneonneo 2013-04-09 04:53:47
是的。僅在出現錯誤時纔打印 - 僅用於減少IO。我沒有檢查CPU使用率。即使它不是CPU密集型的,我們該如何平行運行? – 2013-04-09 04:55:24
這聽起來像是你的I/O綁定,在這種情況下,多個進程可能無濟於事。另外,如果你只是在尋找錯誤,請考慮使用'grep'。 – nneonneo 2013-04-09 04:57:00