与LANG = C相比,LANG设置为UTF-8时慢了十倍

时间:2012-10-15 13:25:36

标签: gawk

我在硬件(实际上是vm)方面有两个相同的服务器,一个在RHEL 4.7,一个在RHEL 6。

在RHEL6上,gawk非常慢。我做了一个简单的测试,涉及处理3.7M文本行,并使用简单的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 vs 1m28s!最初我认为升级后vm发生了一些事情,但CPU的其他测试(例如gzips,perl中的相同程序)在每个上产生类似的结果。 所以这似乎是傻瓜。 不确定这是正确的问题,但在RH 6上gawk 3.1.7是否存在已知的性能问题?在哪里找到最好的地方,如果不是在这里?

1 个答案:

答案 0 :(得分:2)

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

完全属于语言环境设置。在我的RH6盒子上LANG设置为en_US.UTF-8,在RH4上它是C.在RH6上更改它修复了性能。

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