Linux

更改 tty 可以提高編譯速度嗎?

  • May 21, 2011

當我進行大型編譯(在任何地方,但我的問題假設 Linux)時,許多消息通常會輸出到螢幕上。我的問題是,這些消息會減慢這個過程嗎?如果他們這樣做了,是否切換到不同的 tty 以使它們不顯示在螢幕上會降低性能損失?

是的,他們當然可以。

來自http://www.linuxakesson.net/programming/tty/index.php

在 xterm 中執行 yes,您會看到許多“y”行從您的眼前掠過。當然,yes 程序生成“y”行的速度比 xterm 應用程序解析它們、更新其幀緩衝區、與 X 伺服器通信以滾動視窗等的速度要快得多。這些項目如何合作?

答案在於阻塞 I/O。偽終端只能在其核心緩衝區中保留一定數量的數據,當該緩衝區已滿並且 yes 嘗試呼叫 write(2) 時,write(2) 將阻塞,將 yes 程序移動到可中斷睡眠狀態,其中它一直存在,直到 xterm 程序有機會讀取一些緩衝的字節。

如果 TTY 連接到串列埠,也會發生同樣的事情。yes 能夠以比 9600 波特更高的速率傳輸數據,但是如果串列埠被限制在該速度,核心緩衝區很快就會填滿,並且任何後續的 write(2) 呼叫都會阻塞程序(或失敗如果程序請求了非阻塞 I/O,則錯誤程式碼 EAGAIN)。

引用自:https://serverfault.com/questions/272233