私はいつも1.9.xがREEよりも速く、より多くのメモリを消費すると考えていました。しかし、最近私が指摘したように、REEは実際にはRSpec仕様を実行するよりも速く、大きなマージンを持っています。RSpecの実行時にREEが1.9.3より速いのはなぜですか?
のみrspec
と空のspecファイル上で実行を含む、空のgemsetとの二倍だ
$ 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
および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
を取得しています。私は、複数の宝石を含む宝石セットにさらに大きな違いがあることを見ています。
なぜこのようなことが起こっているのですか?1.9.3が現在利用可能な最も速いバージョンではないのですか?
OS X LionのRVMを使用してインストールされた最新バージョンを実行しています。
有効なタスクで実際の速度ではなく、起動時間のみを測定しています。役に立つベンチマーク結果を得るために、代わりにコードに合った何か複雑なものを選んでください。 –
また、ファイルシステムのキャッシュに注意してください。より正確な結果を得るには、各テストを20回連続して実行し、最後の15回の実行の中央値を取る。 – phs
@phsはい私はファイルシステムのキャッシュを認識していますが、ファイルを変更したときにしかそれらを再実行しないので、テストが初めて実行されるときに問題が発生します。 –