SRA の笠原です。

* From: Tadayoshi Funaba <tadf / kt.rim.or.jp>
* Date: Fri, 9 Oct 1998 20:32:12 +0900

> 僕はちょっと前に、試しに笠原さんの getoptlong.rb のサンプルにあった wc
> を read 一気読みに書き換えてみました。どうしてそういうことをしてみたか
> というと、自分でもお遊びで  wc を書いたことがあったからです。笠原版 wc
> のほうが、ずっと本格的なんですが、速度を比べてみると、僕のほうが速いよ
> うだったので、調子に乗って笠原版に手を入れてみたのです。--lines の処理
> が面倒そうだったので (--lines というのは初めてみました)、手を抜いて、
> そこだけ仕様を変更してしまいました。でも、コードはとても簡単になって
> (簡単なのしか書けないし :-)、処理も速くなったようです。 いつもいつも、
> こんなんで済めば、じつにありがたいと思う、怠け者のふなばなのでした。

あの wc は textutils-1.22f の wc.c を横目に見ながら、それを Ruby に書
き換えています。(あえて同じように書き換えたので、main 関数もそもまま 
`def main 〜 end' と残しています ^^;)  私のオリジナル性はありません。
wc.c では、限られた資源でも巨大なファイルを正しく count できるように、
一気読みはしていないのだと思います。

ただ、実は wc.c の方でも高速化のために工夫化した処理部分があって、ファ
イルシステムのブロックサイズを調べて、そのサイズ単位で処理したり、mmap
が使えればそれを使ったり....といったことをやっています。私の Ruby 版で
は、それこまではやっていません。あれはあくまで getoptlong.rb の「おまけ」
ですので。(^_^)


> (--lines というのは初めてみました)

--max-line-length は textutils-1.22 (末尾に `f' が付かない正式版) では
存在しません。後で追加されたようです。
______________________________________________________________________
                                          笠原 基之(かさはら もとゆき)