[Namazu-devel-ja 272] Re: syscmd 試作
Tadamasa Teranishi
yw3t-trns @ asahi-net.or.jp
2004年 10月 13日 (水) 16:34:32 JST
寺西です。
NOKUBI Takatsugu wrote:
>
> > ところで、Compress/Zlib.pm は perl 標準モジュールなのでしょうか?
> > 手元の環境には入っていないみたいですが。
>
> perl本体には付属していません。zlibに依存しているので、標準に含めるに
> は面倒が多そうだから入っていないのだと思います。
たぶん、古い IRIX で昔はまったのは、Compress/Zlib.pm じゃなかったかと
思います。
> gzip.plでgzipコマンドとモジュールの両方に対応しているのは、当時
> Compress::Zlibを扱うことに興味をもっていたのでたまたま実装しただけ、と
> いうのが真相です。きちんと計測したわけではないのですが、Compress::Zlib
> を用いるコードではスカラ変数にデータを持っているので、おそらくメモリ効
> 率がよくないのではないかと思います。
解凍前と解凍後の全データをオンメモリで処理するであろうと予測できる
ので、非常に大きなファイルの場合は辛いかもしれません。
とは言え、$FILE_SIZE_MAX の上限できちんと切る処理ができているのなら、
問題になることは少ないかと思います。
(昨日の HEAD では読み込んでからエラーになっていましたが。)
Compress/Zlib.pm に解凍前に解凍後のデータサイズを取得する手段が
用意されているかどうかわかりませんが、事前にチェックできるのなら、
$FILE_SIZE_MAX で処理を中断することも可能でしょう。
# 処理速度はどちらが速いかわかりませんが。どちらも別のオーバーヘッド
# がありそうですから。
> compressで圧縮されたデータ自体は、gzip(gzcat)でも展開できます。なの
> でGNU/Linux環境でははzcatにもhardlinkされることが多いです。
そうですね。手元の Linux も compress/uncompress コマンドがなくて、
時代の流れを感じています。(gzip で代用できるので困りませんけれども。)
HEAD はフィルタの選択できる機能が入っていますので、Compress/Zlib.pm
を使った別フィルタを compress.pl, gzip.pl から分離して用意し、
選択して使うというのが将来的には良いのではないでしょうか。
Perl モジュールを優先して使うか、外部コマンド版を優先して使うかを
利用者が選択できるようになります。
また、デバッグも楽になります。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E
Namazu-devel-ja メーリングリストの案内