为什么将多行打印到终端而不是将其重定向到似乎几乎是即时的文件要花费更多时间?
最佳答案
首先,终端非常慢。对于每次更新,他们必须:
- 解析和解释任何控制代码。
- 解析、解释和呈现任何转义码。
- 解释和解释任何多字节和组合字符。
- 更新适当的屏幕和滚动缓冲区。
- 使用适当的字体呈现。
如果您使用 screen 或 tmux,则可能会再次执行上述所有操作。
同时,要重定向到文件,您只需:
将数据转储到 RAM(供以后写回存储)。
这一步非常小,甚至没有在终端的 list 上注册。
这不是人们优化的目标,因为终端的速度很少成为问题。终端之间的差异可能是 50 倍(VGA 与 fbcon 在过去),您可以使用简单的 time cat somebigfile.txt
对其进行计时。
关于linux - 为什么直接打印到控制台/终端比重定向慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30766450/