Skip to content
This repository has been archived by the owner on Jun 5, 2023. It is now read-only.
/ bundle_benchmark Public archive

Because loading gems can take longer than you think

License

Notifications You must be signed in to change notification settings

ankane/bundle_benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bundle Benchmark

💎 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

# default rails development groups
BUNDLE_GROUPS=default,development,assets bundle_benchmark

Now What?

Read this article

https://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:

  1. Added :console group like the article above suggested

  2. Commented out ruby-prof, oink, and debugger when not in use

  3. Moved newrelic_rpm and turbo-sprockets-rails3 to :staging, :production groups

  4. Removed unused gems

Bonus

bin/rails console # or server, etc

is faster than

bundle exec rails console

Try it yourself

About

Because loading gems can take longer than you think

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages