Mac OSX上的Ruby执行在2个目录之间存在巨大而奇怪的时差

时间:2012-04-28 16:54:46

标签: ruby macos

我在Mac OS X上遇到了一个非常奇怪的情况。 这可以在两台Mac机上复制(Macbook和Mac Mini Server)。

基本上我在两个不同的目录中运行相同的,相同的ruby代码。在第一个目录中,我的执行时间为7秒,第二个目录为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脚本在两个目录中的行为也不同:请注意,它使用的是相同的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上复制相同的错误但是#34;感染了#34;路径/目录是不同的所以它看起来像随机一些目录/路径得到这个红宝石慢延迟执行诅咒。

1 个答案:

答案 0 :(得分:1)

KirkyBase打开文件夹中的所有表(.tbl文件)。

如果你在某个文件夹中有更大的文件,而在另一个文件夹中有更少或更小的文件,这可能会解释时间上的差异。