2

我正在测试有关clearvstput cleartput cuu1(光标向上)命令的 Bash 和 AWK 脚本性能。我在 Bash 和 AWK 中实现了类似的脚本。

重击: http: //pastebin.com/0DSc0a71

AWK: http: //pastebin.com/WAJ9inRx

承认以类似的方式编写它们,我分析了不同的执行时间。

在 Bash 脚本中:

  • cleartput clearbash 命令与命令一样快
  • 而且tput cuu1很贵

在 AWK 脚本中:

  • tput cuu1不贵

@与system( "clear" );@

  • 并且clearbash 命令比tput clear命令慢

@与"clear" | getline Clearhttp://pastebin.com/Afh3WFGR)@

  • 并且bash 命令与命令clear一样快tput clear

因此,似乎 AWK 执行tput cuu1的命令比 Bash 更好,并且进入 AWK 脚本,system()功能比其他直接调用要慢。

@添加cpu信息@

AWK 脚本使用的 CPU 比 bash 脚本少。Bash 脚本使用的 CPU 是 AWK 脚本的 4 倍。是否可以执行 Bash 脚本?

为什么tput cuu1在 Bash 脚本中非常昂贵?

4

1 回答 1

1

AWK 和 Bash 都调用相同的外部cleartput实用程序。我怀疑其中一些差异可能在于一个与另一个的执行开销以及两个脚本实现方式的差异。在我的系统上clear输出与文档相同的序列,tput clear文档说是这样。请注意,clearandtput是外部实用程序,而不是 Bash 或 AWK 命令。

你为什么要这样做?使用其他原因所需的语言。在脚本启动时将序列保存在变量中,这样您就不必重复调用tput. 仅clear用于方便,因为这就是它的全部功能 -tput显然更加通用。

于 2012-07-07T01:11:21.707 回答