2

我有两台硬件(实际上是虚拟机)相同的服务器,一台在 RHEL 4.7,一台在 RHEL 6。

在 RHEL6 上 gawk 非常慢。我做了一个简单的测试,涉及处理 370 万行文本,使用一个简单的 gawk 命令。

在 RH4.7 上,gawk 3.1.3 我得到:

time gawk '/^pat1/&&/pat2/ {x++};END {print "x="x}' file

x=40874

real 0m7.266s user 0m6.809s sys 0m0.460s

在 RH6,gawk 3.1.7 我得到相同的 x 结果,时间:

real 1m28.138s user 1m27.657s sys 0m0.453s

7s 对 1m28s !最初我认为升级后 vm 发生了一些事情,但是其他 CPU 测试(例如 gzips,perl 中的相同程序)在每个测试中产生了类似的结果。所以这似乎是愚蠢的。不确定这是要问的正确地方,但是 RH 6 上的 gawk 3.1.7 是否存在已知的性能问题?如果不是在这里,最好的地方在哪里?

4

1 回答 1

2

我从 gawk bugs 邮件列表中得到了答案。

这完全取决于语言环境设置。在我的 RH6 机器上,LANG 设置为 en_US.UTF-8,在 RH4 上是 C。在 RH6 上更改它可以修复性能。

绝对值得记住 - 与 C 相比,将 LANG 设置为 UTF-8 时 gawk 的速度要慢 10 倍

于 2012-10-17T08:35:57.137 回答