12.03.2015 Authorship by Mike 496 183

If you wonder why your bundler based application boots so slowly, use bumbler. Bumbler can be added as a gem to your Gemfile: 

gem 'bumbler'

Afterwords you need to add the following to your profile, .bash_profile, .zshrc, .wtfrc or whatever shell config you use,

export RUBYOPT=-rbumbler/go

If you boot rails now with rails c from a console you get a nice progress bar for the loading of the gems. Now you can see the loadtimes of the gems with 

Bumbler::Stats.allslowitems

Pretty cool. Example output:

Loading development environment (Rails 3.2.13)
1.9.3-p392 :001 > Bumbler::Stats.all_slow_items
Slow requires:
    101.97  simple_enum
    110.99  omniauth
    123.25  sass-rails
    132.41  jquery-rails
    142.73  oauth-plugin
    146.82  rakismet
    265.14  kaminari
    287.16  perfect_reach
    325.68  sqlite3
    339.46  v8
    342.32  simple_form
    405.54  url_shortener
    413.06  oauth
    479.18  omniauth-twitter
    501.57  turn
    514.53  mailjet
    634.97  libnotify
    661.05  coffee-rails
    698.15  sitemap_generator
    713.95  omniauth-facebook
    771.77  xmpp4r
    837.43  rails
    845.54  feedzirra
   1004.67  resque_scheduler/server
   1242.89  twitter
   1449.90  sanitize
   1564.35  paperclip
   1614.12  devise
   1752.78  resque/server
   2000.78  omniauth-openid
   2323.25  newrelic_rpm                                                                                                                                                                                                                                                       
   2563.62  bootstrap-sass                                                                                                                                                                                                                                                     
   4050.98  rails3-jquery-autocomplete                                                                                                                                                                                                                                         
   4069.64  exception_notifier                                                                                                                                                                                                                                                 
   4370.43  fb_graph                                                                                                                                                                                                                                                           
   4799.17  capistrano                                                                                                                                                                                                                                                         
   5864.50  acts-as-taggable-on                                                                                                                                                                                                                                                
 => Bumbler::Stats                                                                                                                                                                                                                                                             
1.9.3-p392 :002 >

 

Afterwords i switched the same application to rails 2 and got the following results:

Loading development environment (Rails 3.2.13)
2.0.0p0 :001 > Bumbler::Stats.all_slow_items
Slow requires:
    104.02  oauth
    114.64  v8
    132.50  kaminari
    147.58  omniauth-twitter
    177.08  resque_scheduler/server
    180.91  paper_trail
    236.00  twitter
    251.63  feedzirra
    272.00  omniauth-facebook
    273.72  xmpp4r
    280.19  sitemap_generator
    297.23  libnotify
    308.77  coffee-rails
    321.51  rails
    334.65  turn
    524.12  sanitize
    665.21  resque/server
    727.90  paperclip
    738.42  devise
    798.38  rails3-jquery-autocomplete
    799.38  newrelic_rpm
    864.15  omniauth-openid
   1121.55  bootstrap-sass
   1381.81  exception_notifier
   1498.61  acts-as-taggable-on
   1674.48  fb_graph
   1811.82  capistrano
 => Bumbler::Stats 
2.0.0p0 :002 > 

That is pretty amazing, the time needed to boot the application is several times lower! Even if a switch to another ruby version does not help youo, you at least know what takes the longest and can maybe optimize it.