0

Mac OS Xで非常に奇妙な状況に直面しています。これは、2台のMac(MacbookとMac Miniサーバー)で複製されています。

基本的に、私は2つの異なるディレクトリで同じ同一のrubyコードを実行しています。最初のディレクトリでは実行時間が7秒で、2番目のディレクトリでは0.191です。両者に全く違いはありません。

gspider@b1-3 ~£ time ruby  sb2.rb 
#<struct recno=2001, name="Amazon", ticker="MPS", tradeprice=185.5, tradedate="2012-04-        28", quantity=45, totalposition=8347.5>

real    0m7.775s
user    0m7.160s
sys 0m0.612s


 gspider@b1-3 ~/Sites£ time ruby sb2.rb
 #<struct recno=2001, name="Amazon", ticker="MPS", tradeprice=185.5, tradedate="2012-04-       28", quantity=45, totalposition=8347.5>

real    0m0.191s
user    0m0.164s
 sys    0m0.023s

しかし、もっとあります。存在しないファイルをフェッチする単純なrubyスクリプトでさえ、2つのディレクトリで異なる動作をします。同じ同じrubyバージョンを使用していることに注意してください。

gspider@b1-3 ~£ time ruby sb3.rb
/Users/spider/.rvm/gems/ruby-1.9.3-p125/gems/KirbyBase-2.6.1/lib/kirbybase.rb:520:in      `get_table': Table not found! (RuntimeError)
from sb3.rb:8:in `<main>'

real    0m7.885s
user    0m7.240s
sys 0m0.642s


gspider@b1-3 ~/Sites£ time ruby  sb3.rb
/Users/spider/.rvm/gems/ruby-1.9.3-p125/gems/KirbyBase-2.6.1/lib/kirbybase.rb:520:in    `get_table': Table not found! (RuntimeError)
from sb3.rb:8:in `<main>'

real    0m0.183s
user    0m0.156s
sys 0m0.023s

この非常に不安定な動作の原因は何でしょうか?繰り返しますが、これは、bashタグから2つの異なるディレクトリからわかるのと同じマシンです。別のMacで同じエラーを再現することはできましたが、「感染した」パス/ディレクトリが異なるため、一部のディレクトリ/パスがこのルビーの遅い遅延実行の呪いをランダムに取得しているように見えます。

4

1 に答える 1

1

KirkyBaseは、フォルダー内のすべてのテーブル(.tblファイル)を開きます。

一部のフォルダに大きなファイルがあり、他のフォルダに少ないファイルがある場合、これが時間の違いを説明している可能性があります。

于 2012-04-28T22:52:12.620 に答える