Rubyのsleepの精度が怪しい(@ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32])
これ(↓)だけのコードなのに
[5,10,15,30].each do |j| [0,1,2].each do |i| v = sleep(j).to_s puts j.to_s+" "+v.to_s end end
1.5〜1.6倍の時間をwaitしちゃってる.
誤差にしては大きすぎるけど、なんだこりゃ?
C:\ruby>ruby test2.rb 5 8 5 8 5 7 10 16 10 16 10 15 15 24 15 23 15 24 30 47 30 46 30 47
-
-
- -
-
9:45追記
ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-linux]
だとちゃんと指定秒で戻ってくる。Windows環境の問題か?
-
-
- -
-
10:08追記
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-linux]
でもちゃんと指定秒で戻ってくるのでWindows環境の問題くさい。