[LE-talk-ja 261] Re: 投稿者トップ30

Back to archive index

Hiro Yoshioka hyosh****@mirac*****
2006年 5月 30日 (火) 09:34:37 JST


よしおかです。

> 木村です。

おはよーございます。

> 初投稿がこれというのもなんなのだろうかと思いますが(^^;

いえいえ、ようこそいらっしゃいました。

> Hiro Yoshioka さんは書きました (2006/05/29 23:48):
> 
> > それよか、びっくりしたのはgrepが異様に遅いのですが
> > LANG=ja_JP.UTF-8 だといけないみたいで、
> > 
> > $ time egrep '^From:' /tmp/le.txt|wc
> >     258    1521   12538
> > 
> > real    0m32.285s
> > user    0m32.376s
> > sys     0m0.024s
> > $ time LANG=C egrep '^From:' /tmp/le.txt|wc
> >     258    1521   12538
> > 
> > real    0m0.156s
> > user    0m0.151s
> > sys     0m0.005s
> > 
> > 200倍違うんですけど、そーゆーもんなんすか?>grep
> 
> GNU grep でしょうか? だとしたらそういうものです。

やっぱり、そういうものなんですか。

> たびたび「バグだろう」とレポートされている代物です。
> 
> 日本語環境でなくても、en_US.UTF-8 とか de_DE とかでも
> なります。以前profileとって少し調べたのですが、wchar_tへの
> 変換もそうですが、動的にDFAを生成しているのが(マルチバイト文字
> 対応ルーチンのときに)かなり重いみたいです。

oprofileしてみますた。

LANG=ja_JP.UTF-8 の場合
# head /tmp/grep_op_l1.txt
CPU: P4 / Xeon with 2 hyper-threads, speed 3200.6 MHz (estimated)
Counted GLOBAL_POWER_EVENTS events (time during which processor is not stopped) with a unit mask of 0x01 (mandatory) count 10000
samples  %        app name                 symbol name
8793343  28.8152  libc-2.3.4.so            __gconv_transform_utf8_internal
5348911  17.5281  oprofiled                (no symbols)
4036581  13.2276  libc-2.3.4.so            mbrtowc
1697574   5.5628  libc-2.3.4.so            _IO_vfscanf
1015466   3.3276  oprofile                 (no symbols)
609007    1.9957  libc-2.3.4.so            __i686.get_pc_thunk.bx
529516    1.7352  libc-2.3.4.so            memmove

LANG=Cの場合は以下のとおり
# head /tmp/grep_op_lC.txt
CPU: P4 / Xeon with 2 hyper-threads, speed 3200.6 MHz (estimated)
Counted GLOBAL_POWER_EVENTS events (time during which processor is not stopped) with a unit mask of 0x01 (mandatory) count 10000
samples  %        app name                 symbol name
327913   14.1844  oprofiled                (no symbols)
184812    7.9943  libc-2.3.4.so            __gconv_transform_utf8_internal
141363    6.1149  libc-2.3.4.so            memmove
138621    5.9963  bash                     (no symbols)
137707    5.9567  oprofile                 (no symbols)
120875    5.2286  libc-2.3.4.so            mbrtowc
119299    5.1605  libc-2.3.4.so            _IO_vfscanf

うーむ、いかんですね。

よ
--
Hiro Yoshioka
CTO/Miracle Linux Corporation
http://blog.miraclelinux.com/yume/



Legacy-Encoding-talk-ja メーリングリストの案内
Back to archive index