Bundle Benchmark
:gem: Because loading gems can take longer than you think
bundle_benchmark
............................................................[DONE]
Gem Time(sec) Pct %
--------------------------------------------------
rails 2.4161 26.9%
mongoid 0.9279 10.3%
fog 0.7707 8.6%
newrelic_rpm 0.5839 6.5%
geocoder 0.3578 4.0%
delayed_job 0.3162 3.5%
bitly 0.2703 3.0%
sass 0.2651 3.0%
tire 0.2592 2.9%
--------------------------------------------------
Total 4.8583 100.0%
Forked from this awesome gist by Pan Thomakos
Installation
gem install bundle_benchmark
No need to add it to your Gemfile.
Use It
In your project directory, run:
bundle_benchmark
To benchmark a specific Gemfile, run:
BUNDLE_GEMFILE=~/Projects/project_n/Gemfile bundle_benchmark
To only require certain groups - like Rails does - do
BUNDLE_GROUPS=default,development,assets bundle_benchmark
Now What?
Read this article
http://iain.nl/getting-the-most-out-of-bundler-groups
The Results
I was able to reduce gem load time from 12.1 seconds to 6.7 seconds - over 5 seconds!
Here’s what I did:
-
Added :console group like the article above suggested
-
Commented out ruby-prof
, oink
, and debugger
when not in use
-
Moved newrelic_rpm
and turbo-sprockets-rails3
to :staging, :production groups
-
Removed unused gems
Bonus
script/rails console
is faster than
bundle exec rails console
Try it yourself