我在 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 上复制相同的错误,但是“受感染的”路径/目录不同,所以看起来有些目录/路径随机地得到了这个红宝石缓慢延迟执行诅咒。