From: "NARUSE, Yui" Date: 2009-03-02T00:07:01+09:00 Subject: [ruby-list:45897] Re: 1.9.1におけるファイルアクセス速度 成瀬です。 akuri wrote: > 数GBあるファイルを処理するため、今後、1.9.1の利用を前提とするか、 > 1.8.6を使い続けるか、迷っています。 結論から申しますと、1.8.7 への移行をおすすめします。 > (2)このような速度差は、仕様上当然のことであり、今後とも改善は見込まれ >  ないでしょうか? まずこちらから回答しますと、Ruby 1.9.1 では Ruby M17N という多言語化ー、 まぁ高度な文字列処理の仕組みが入っています。 Ruby M17N は高機能なのですが、最適化が不十分なため、 あらゆる文字列処理を遅くする原因になっています。 本件も計測はしていませんがこれが原因である可能性があり、 そうならば仕様上当然のこととなります。 改善はもちろんしたいと思っておりますが、それが 1.9.1 に入ることはありません。 今後リリースされる 1.9.2 や 1.9.3 では多少改善するつもりですが、 1.8 と同等までの高速化は今のところ保証できません。 そもそも、1.9.1 はライブラリ作者や先進的なユーザ向けですので、 一般的なユーザは 1.9.2 や 1.9.3 を待つべきだとわたしは思っています。 ただ、1.8.6 を使い続けると今度は今後 1.9 に移行する際に負担が大きいので、 1.9 への移行を支援するためにリリースされた 1.8.7 や 1.8.8、1.8.9 を 当分の間は利用することをおすすめします。 > (1)1.9.1において、ファイルへの読み込みや書き込みをする場合、処理速度 >  を早くするような特別な記述方法があれば、教えてください。 一応、シングルバイトエンコーディングを指定したり、 バイト的に操作することで高速化するというテクニックがあるにはあります。 が、何を言っているかわかる方にしかお勧めできません。 -- NARUSE, Yui