From: matz@... (Yukihiro Matsumoto) Date: 2000-05-12T13:30:04+09:00 Subject: [ruby-list:22478] Re: IO#read with prepared buffer (was Re: IO.foreach) まつもと ゆきひろです ちょっとdevっぽくなってきましたが。 In message "[ruby-list:22474] Re: IO#read with prepared buffer (was Re: IO.foreach)" on 00/05/12, nobu.nakada@nifty.ne.jp writes: | でも、それよりも気になって来たんですが、結果はどうやって返って来るん |でしょう。 | |1. 引数の string 自体、読んだバイト数は string.size |2. 読んだバイト数、string.size 自体は変更無し たぶん1じゃないですかね。 | あたりが思い付くんですが、1.だと結局毎回新たにバッファ用の Stringを |作りなおさなきゃいけないだろうし、2.だと無効なデータが後ろにくっついた |まま、長さは別途管理というかなりキモチわるい状態になってしまって、結局 |そのあと有効な部分だけを切り出さざるを得ないとか、メリットが生きて来な |いんじゃなかろうかと。 たぶんreallocを行うことになると思いますので、うまくいけば mallocが減るというくらいじゃないかと。あと、GCの回数が減るの も嬉しいかも。 |# う〜ん、rb_str_new3() ってこういう用途に使えます? 使えないんじゃないかと思います。 まつもと ゆきひろ /:|)