为什么直接打印到控制台/终端比重定向更慢?

时间:2015-06-10 20:16:04

标签: linux io terminal

为什么要花多少时间将多行打印到终端而不是将其重定向到几乎是即时的文件?

1 个答案:

答案 0 :(得分:3)

首先,终端只是很慢。对于每次更新,他们必须:

  1. 解析并解释任何控制代码。
  2. 解析,解释和渲染任何转义码。
  3. 解释并说明任何多字节和组合字符。
  4. 更新相应的屏幕并滚动缓冲区。
  5. 使用适当的字体渲染。
  6. 如果使用screen或tmux,可能会重复上述所有操作。

    同时,要重定向到文件,您只需:

    1. 将数据转储到RAM中(以便以后写回存储)。

      此步骤非常小,甚至无法在终端的核对清单上注册。

    2. 这不是人们优化的,因为终端的速度很少是个问题。终端之间的差异可以是50x(VGA与fbcon当天回来),您可以使用简单的time cat somebigfile.txt计时。