Performance

什麼時候給 tr 添加 -u 有好處?

  • October 21, 2021

tr命令的參數之一是:

-u 保證任何輸出都是無緩衝的。

在什麼情況下不緩衝輸出是個好主意?

例如,-u如果我希望每行都超長,我應該使用嗎?

例如,-u如果我的記憶體受限,我應該使用嗎?

例如,如果我將它輸入awk(逐行處理文件),那麼這是否意味著使用緩衝輸出更好?

無緩衝的輸出效率較低,因此如果有很多,它會變慢。無緩衝輸出可能會對每個字元進行系統呼叫(儘管通常不會)。

優點是您可以立即獲得輸出,而不是在緩衝區填滿並刷新時。對於緩慢的輸出(例如一次一行或更少),並且可以互動式查看,這會更好。

在 Unix 中,輸出通常是塊緩衝或行緩衝,很少是無緩衝的。

您可以使用命令更改命令的預設值,該stdbuf命令是 GNU coreutils 的一部分。

引用自:https://unix.stackexchange.com/questions/674140