作者: 閑舎
日時: 2002/10/02(05:16)
dune <FZH01112@...> さん wrote.

> >$ perl hoge.pl 000text
> >128MB
> >5s
> 
> 速いなぁ。OS の違いでしょうか。僕は Windows 2000 なんですが。

たぶんキャッシュがきいています。ただ、いろんな read の仕方の中では最速の
ようです。でも、メモリ搭載量が少ないと Out of Memory になるのかも……と
いう気がして、4096 バイトずつ読むのをデフォルトにして、後は環境に応じて
手を入れてくださいな、とするのが無難かと思い出しました。ラクダ本には

  (stat FILE)[11]

を使え、とあるな(^^;。

 私の環境はソフト的には Vine Linux 2.5 / Perl, v5.6.1 built for
i386-linux となっていまして、ハード的には Celeron 1200 MHz / 256MB
SDRAM(うち 128MB を Vmware が占有中で実質 128MB) / Ultra DMA 33 で、最近
のマシンとしては恐らく少し見劣りする程度です。Vine Linux だと、あまり新
しいハードはつまずきの元でもあるので。ちなみに rakunet.org のサーバは、
Plamo ですが Ultra DMA 100 で動いていて、ディスクアクセスは極めて速いで
す。まあ、この辺はマザーボードの BIOS との相性もあるし、買ってきてセット
してみないと、よくわからないんですよ。

> read(FILE,my $buff,-s $file);

ここがよくわからないのですが、

  read(FILE,my $buff,(stat FILE)[7]);

と同じ意味ですか?

--
本田博通(閑舎)
テキストとスクリプトの http://rakunet.org/TSNET/