Kawanet Blog II

アクセスカウンタ

zoom RSS Perl 5.10.0 正規表現でメモリリーク発生

<<   作成日時 : 2008/10/26 17:30   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 16 / トラックバック 1 / コメント 1

Perl 5.10.0 には正規表現周りでメモリリークが発生するとのこと。
regcomp.c の修正で解決済み らしいが、Linux ディストリビューションで
既に巷に出回っている 5.10.0 は当面は、現役続行になりそうなので、
サーバでデーモン的に常時起動している場合は、問題になりそう?
 
ちょうど XML::TreePP モジュールで、『Perl 5.8 では問題がないのに、
Perl 5.10 だとメモリリークが発生する』との問い合わせが来たので
確認していたところ。
while ( 1 ) {
        qr/something/;
}
これだけのコードでメモリリークを確認できます。
5.8.8 では使用メモリは 5MB くらいなのに、5.10.0 ではガシガシ増える。
コードゴルフ的には、ワンライナーでも確認できたり。
$ perl -e 'qr// while 1'
XML::TreePP で使っていた正規表現は、前方一致検索だけのシンプルな
コードだったので、substr() を使って正規表現の利用を回避して対応。
 
正規表現をいったん使うと、そのメモリが開放されないのかな?
Perl なのに正規表現で問題発生とは、ちょっと困りますね。
正規表現がどうしても必要なプログラムって多いと思いますが、
5.10.0 では使えないということになってしまうのでしょうか?
Perl 5.8.0 も鬼門だったが、5.10.0 もやっぱり避けたほうが良い!?
 
PS)
XML::TreePP への問い合わせをもらったのは7月8日だったのですが、
確認する時間がなくて放置してしまっていました、ゴメンナサイ!

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 16
なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
驚いた 驚いた 驚いた 驚いた
面白い 面白い
ナイス ナイス
ガッツ(がんばれ!) ガッツ(がんばれ!)
かわいい かわいい

トラックバック(1件)

タイトル (本文) ブログ名/日時
対応する括弧にマッチする正規表現
Perl5.10の正規表現では名前付きキャプチャとメモリリークが追加されました。 ...続きを見る
にひりずむ::しんぷる
2009/04/12 04:28

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(1件)

内 容 ニックネーム/日時
有用な情報ありがとうございます。
とりあえず、自分のできる範囲ということで Debian BTS に報告してみました。
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503975
ツッコミやフォローがあればお願い致します。
Henrich
2008/10/30 10:37

コメントする help

ニックネーム
本 文
Perl 5.10.0 正規表現でメモリリーク発生 Kawanet Blog II/BIGLOBEウェブリブログ
文字サイズ:       閉じる