2011年11月 5日

[ruby-list:48517] Re: Ruby1.9.3(windows)におけるファイルへの書き込み速度

こんにちは。Diceです。

私もちょっと気になったので、同じコードをお借りして試してみました。
OSはWindows 7 (64bit)、CPUはCore i7 2.93GHz、メモリは6GBです。
また、参考用のため、ruby 1.8.7での比較も行いました。

この結果を見る限り、私の環境では30倍とはいきませんでしたが
mingw32版での書き込み時間が大幅に伸びているのは確かなようです。

(ruby1.9.2では約0.3秒→ruby1.9.3では約2.6秒)
この結果が何らかの参考になれば幸いです。

**
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]

Write:0.305004(s)
Read :1.640026(s)

ruby 1.9.3p0 (2011-10-30) [i386-mingw32]

Write:2.60254(s)
Read :1.622525(s)

ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]

Write:0.147502(s)
Read :0.095002(s)
**

また参考のために、ファイルのオープンをテキストモードではなく
バイナリモードで行った場合の結果も併記いたします。

**
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]

Write Binary:0.052501(s)
Read Binary:0.0525(s)

ruby 1.9.3p0 (2011-10-30) [i386-mingw32]

Write Binary:2.102533(s)
Read Binary:0.050001(s)

ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]

Write Binary:0.080001(s)
Read Binary:0.070001(s)
**

--
Dice
tetradice@xxxxx

2011年11月5日5:57 <ak7@xxxxx>:
> 1.9.3p0をWindowsXP SP3の環境で試したところ、ファイルへの書き込みに
> かかる時間が、1.9.2と比較して30倍程度増えていることが分りました。
>
> サンプルは、以下の通りです。
> 皆様の環境(特にWindows)ではいかがでしょうか?
> また、対応方法があれば教えてください。
>
> **** testcode.rb ****
> t=Time.new
> str = '0123456789'*10
> open('test.txt','w') do |f|
> 100000.times do
> f.puts str
> end
> end
> puts "Write:#{Time.new-t}(s)"
>
> t=Time.new
> open('test.txt') do |f|
> f.each_line{|line| line}
> end
> puts "Read :#{Time.new-t}(s)"
>
>
> **** 実行結果 ****
> C:\>path c:\ruby192\bin
> C:\>ruby -v
> ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
> C:\>ruby testcode.rb
> Write:0.531281(s)
> Read :2.125122(s)
>
> C:\>path c:\ruby193\bin
> C:\>ruby -v
> ruby 1.9.3p0 (2011-10-30) [i386-mingw32]
> C:\>ruby testcode.rb
> Write:17.469756(s)
> Read :2.172(s)
>
>
>
>
>

投稿者 xml-rpc : 2011年11月 5日 09:14
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/107272
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。