Bootscale
Speedup applications boot by caching require calls.
Speed gain depends on your number of gems. Under 100 gems you likely won't see the difference, but for bigger applications (300+ gems) it can make the application boot up to 30% faster.
Installation
# Gemfile
gem 'bootscale', require: false
Then you need to add right after require 'bundler/setup':
require 'bundler/setup'
require 'bootscale'
Bootscale.setup(cache_directory: 'tmp/bootscale')
If your application is a Rails application, you will find this in config/boot.rb.
Important
Cache should be update everytime $LOAD_PATH is modified by calling Bootscale.regenerate.
For Rails apps it means adding an initializer in config/application.rb:
module MyApp
class Application < Rails::Application
initializer :regenerate_require_cache, after: :set_load_path do
Bootscale.regenerate
end
end
end
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/byroot/bootscale.
Local development: your load time will be very slow when using a local copy for development like gem 'bootscale', path: '~/Code/bootscal', use via git instead.
Thanks to Aaron Patterson for the idea of converting relative paths to absolute paths.