我在硬件(实际上是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是否存在已知的性能问题?在哪里找到最好的地方,如果不是在这里?
答案 0 :(得分:2)
我从gawk bugs邮件列表中得到了答案。
完全属于语言环境设置。在我的RH6盒子上LANG设置为en_US.UTF-8,在RH4上它是C.在RH6上更改它修复了性能。
绝对值得记住 - 与C相比,LANG设置为UTF-8的速度慢了10倍