2

ハードウェア(実際にはvm)に関して2つの同一のサーバーがあります。1つはRHEL 4.7に、もう1つはRHEL6にあります。

RHEL6では、gawkは非常に遅くなります。簡単なgawkコマンドを使用して、370万行のテキストを処理する簡単なテストを行いました。

RH4.7では、gawk3.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

7秒vs1分28秒!最初は、アップグレード後にvmに何かが起こったと思っていましたが、CPUの他のテスト(gzip、perlの同じプログラムなど)では、それぞれで同様の結果が得られます。だから、それはgawkにかかっているようです。これが正しい質問場所かどうかはわかりませんが、RH6のgawk3.1.7で既知のパフォーマンスの問題がありますか?ここにいない場合、見つけるのに最適な場所はどこですか?

4

1 に答える 1

2

gawkbugsメーリングリストから回答を得ました。

それはすべてロケール設定にかかっています。RH6ボックスではLANGがen_US.UTF-8に設定されていましたが、RH4ではCでした。RH6で変更するとパフォーマンスが修正されました。

覚えておく価値があることは間違いありません-gawkは、Cと比較してLANGをUTF-8に設定すると10倍遅くなりました

于 2012-10-17T08:35:57.137 に答える