From: _ wanabe Date: 2009-11-15T21:21:26+09:00 Subject: [ruby-dev:39696] [Feature #2372] read_all() with buffering Feature #2372: read_all() with buffering http://redmine.ruby-lang.org/issues/show/2372 起票者: _ wanabe ステータス: Open, 優先度: Low カテゴリ: core, Target version: 1.9.x io.c の read_all() で、変換が必要な場合の処理が少し重いようだったので バッファに少し溜めてから io_shift_cbuf() を呼び出すようにするパッチを書きました。 溜めるバイト数は io_shift_cbuf() 中にあった式を参考にしています。 ベンチマークスクリプトとその結果を併せて添付します。 bm_io_file_read.rb を参考に、エンコーディングやモードを複数試すようにしています。 Windwos 以外では 'r' モードは 'rb' モードと同じ結果になると思います。 最大で約 2.8 倍速を計測しましたが、変換が複雑な場合には差は縮まり、 また当然ながら短いファイルではほとんど差は出ませんでした。 どなたかもし興味を持っていただけたら、Windows でない、または十分速い環境で 同様に速度が改善するかどうか試していただけると助かります。 ---------------------------------------- http://redmine.ruby-lang.org