我有一個awk腳本發出長串(> 10K字符)到標準輸出。stdbuf用法:增加緩衝區大小
我想增加緩衝區大小,以便一次寫入較大的那些長字符串塊。我計時兩個管道下面有不同的尺寸-o但沒有顯著變化
time stdbuf -o 100MB awk -f processing.awk infile.txt | sort -k1,1 > outfile.txt
time stdbuf -o 100MB awk -f processing.awk infile.txt > outfile.txt
真正/用戶/ SYS時機都非常相似,oneanother(+ - 10%的每個指標)。
我的問題是我是否正確使用stdbuf?謝謝。
FZ。
謝謝。你有沒有看到任何好處,保持在管道外,並在awk中顯式轉移輸出(循環存儲的字符串和> awk內的outfile.txt)? –
如果您需要對數據進行排序,您將受益於保持緩衝區大小更小,以便'sort'獲取數據,而'awk'也生成數據,因此您可以從多核在你的CPU。如果你讓'awk'在產生任何輸出前暫停,那麼就沒有並行性,整個過程將會變慢。在正常情況下,緩衝區的默認大小是可以的。我不希望看到修補緩衝區大小的二階以上性能收益。 –
謝謝你。非常有益的,有用的答案。 –