为什么在终端打印多行文本需要花费更长时间,而将其重定向到文件却几乎是瞬间完成的?
首先,终端速度十分缓慢。对于每个更新,它们需要执行以下操作:
如果使用 screen 或 tmux,还可能需要再次执行以上所有操作。
与此同时,为了重定向到文件,您只需要:
将数据转储到内存中(以便稍后写回存储器)。
这一步骤如此微不足道,以至于它甚至不在终端的清单中注册。
这不是人们优化的目标,因为终端速度很少成为问题。终端之间的差异可以达到 50 倍(例如 VGA vs fbcon),而您可以通过简单的 time cat somebigfile.txt
测试时间。