[Perl] EncodeのMIME-Header-ISO_2022_JPは遅いんじゃないか

メモ。

『あいうえお ,』を50回繰り返した文字列に対して、

 $str = Encode::encode( 'MIME-Header-ISO_2022_JP', $str ); # 1分でも終わらない

 $str = Encode::encode( 'MIME-Header', $str ); # 0.06s

 $str = Encode::encode( 'JIS', $str ); # 0.047s

ちなみに、Perl5.8.5という古い環境です。
Encodeを更新したら、早くなるんかいな?


追記
50回じゃなくて、150回ぐらいだとより顕著。増やせば増やすほど破壊的に遅くなるんで。

追記2
isoya9さんにいわれて、こちらもちゃんとBenchしてみた。

100回

[root@NES2081006330-6 work]# perl c.pl
Benchmark: timing 100 iterations of iso_2022, mime, mime_iso_2022_jp...
iso_2022: 1 wallclock secs ( 0.18 usr + 0.01 sys = 0.19 CPU) @ 526.32/s (n=100)
(warning: too few iterations for a reliable count)
mime: 1 wallclock secs ( 1.81 usr + 0.00 sys = 1.81 CPU) @ 55.25/s (n=100)
^[[A

→10分たっても終わらないんですよ。いくらなんでもおかしい。

1回

Benchmark: timing 1 iterations of iso_2022, mime, mime_iso_2022_jp...
iso_2022: 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)
(warning: too few iterations for a reliable count)
mime: 0 wallclock secs ( 0.02 usr + 0.00 sys = 0.02 CPU) @ 50.00/s (n=1)
(warning: too few iterations for a reliable count)
mime_iso_2022_jp: 133 wallclock secs (131.89 usr + 0.26 sys = 132.15 CPU) @ 0.01/s (n=1)
(warning: too few iterations for a reliable count)


ちなみに、Encodeのバージョンは、v2.26になります。
いくら、VM上だからってこの速度はねえですよ。

現時点のEncodeの最新バージョンは、v2.39なので、それを入れてみるか。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック