[Fswiki-dev] Jcode.pmのUTF8変換がかなりのリソースを必要とする事について

Back to archive index

N.Katoh typer_jp****@yahoo*****
2005年 4月 29日 (金) 16:53:08 JST


加藤です。

先ほど「BBS-サポート掲示板/396」
http://fswiki.poi.jp/wiki.cgi?page=BBS%2D%A5%B5%A5%DD%A1%BC%A5%C8%B7%C7%BC%A8%C8%C4%2F396
に書きましたが、これに関する詳細などをメールします。

掲示板での問題はページ保存時等に、保存はうまくいっているがエラーメッセー
ジのないエラーが発生するという物です。これは、plugin/rss/RSSMaker10.pmで
RSS1.0を生成する時、Jcode.pmでUTF8への変換を行っていますが、この際に大量
のメモリを消費するようです。このため、BIGLOBE等リソース制限の厳しいサー
バでは、save_afterとdelete hookでデフォルト有効なRSSMaker10.pmが呼ばれ、
Out of memoryで強制終了をくらってエラーが発生するようです。

回避策としてはrssプラグインを外すか、UTF8変換を行なわないRSS0.91にするか
で回避できるようです。


さて、この先が本題なのですが、4.0ではUTF8化を予定してますよね。その時に
Jcode.pmを使うと上記の様なサーバでは使用不可となってしまいます。そんなわ
けでもっと軽い変換モジュールへの移行を検討した方が良いと思った次第です。

とりあえず見つけたところでは、検証などはしていませんが
Unicode::Japaneseというのがあるようです。
http://tech.ymirlink.co.jp/
検討していただければと思います。


以下、検証の結果です。参考までに。

環境
* perl: v5.8.6 built for i386-freebsd-thread-multi-64int
* Apache/2.0.53
* FreeBSD5.4-RC2

リソース制限の方法
FreeBSDでは rc.conf[.local] で「apache2limits_enable="YES"」とする事によ
り、/etc/login.conf を元に limits を使用したリソース制限を行なう事ができ
るため、この機能を利用してdatasize(データサイズの最大値制限、mallocとか
のヒープ領域の大きさ?)に制限をかけた。

使用したCGI
wiki.cgi:	FreeStyleWiki3.5.7、ほぼデフォルト状態
rrd_graph.cgi:	モジュールRRDsを使用してrrdtoolsのグラフを作り表示する自
		作のCGI
null.cgi:	"Content-Type: text/html\r\n\r\n<html><body></body></html>"を
		出力するだけのCGI

結果
datasize	状態
500k	apache自体が動かない
1M	null.cgiがok
3M	rrd_graph.cgiがok
7M	RSS1.0生成以外はおおよそokの様子
12M	RSS1.0生成がok

では。
-- 
typer        typer_jp****@yahoo***** 
Noboru Katoh typer****@chive*****



Fswiki-dev メーリングリストの案内
Back to archive index