Jak*_*old 1 ruby rspec ruby-enterprise-edition ruby-1.9.3
我一直认为1.9.x应该比REE快,但消耗更多的内存.但正如最近向我指出的那样,REE实际上比执行RSpec规范更快,而且差距很大.
$ rvm use ree
$ rvm gemset create sandbox
$ rvm gemset use sandbox
$ gem install rspec
$ time rspec foo_spec.rb
No examples found.
Finished in 0.07346 seconds
0 examples, 0 failures
real 0m0.104s
user 0m0.059s
sys 0m0.015s
Run Code Online (Sandbox Code Playgroud)
在用1.9.3做同样的事情后,我得到了
$ time rspec foo_spec.rb
No examples found.
Finished in 0.13922 seconds
0 examples, 0 failures
real 0m0.208s
user 0m0.122s
sys 0m0.022s
Run Code Online (Sandbox Code Playgroud)
这是空宝石集的两倍,仅包含rspec并在空的spec文件上执行.我看到包含多个宝石的宝石的差异更大.
为什么会发生这种情况,1.9.3应该是目前最快的版本?
我在OS X Lion上运行通过RVM安装的最新版本.
这取决于你真正的替补.如果你做的事情那么简单,那么在我看来它根本不算数.所以,这是我的备份宝石的一个例子,它做了很多文件"需要"并运行了一堆真实世界的规范.
Ruby企业版
time bundle exec rspec spec
real 0m5.579s
user 0m3.427s
sys 0m0.465s
502 examples, 0 failures
Run Code Online (Sandbox Code Playgroud)
Ruby 1.9.3p0
bundle exec rspec spec
real 0m3.863s
user 0m3.552s
sys 0m0.299s
502 examples, 0 failures
Run Code Online (Sandbox Code Playgroud)
启动时间通常更快,1.9.3p0,因为某个补丁程序改变了文件require函数的算法,我自己相信它减少了平均Ruby on Rails大小的应用程序的平均加载时间申请量约为30%.但是,如果最初几乎没有任何文件加载,并且该过程不会运行很长时间,那么它可能会更慢.