I frequently work with a large ruby application, and whenever I run
rspec path/to/single_unit_test.rb in a Rails application, it takes 2-3 seconds before the test starts. This is because of the amount of source files that are involved in the application. Fortunately, Shopify released a gem called
- The short story: it speeds up ruby app boot time. Useful for large monolithic applications. Ruby apps slow down if you
requirea lot of source files, so it speeds things up by doing applying some optimizations (compilation caching, YAML optimzations, etc.)
- The long explanation, found here
Simplest setup for a Rails 5.1.1 app (as of
# Gemfile gem 'bootsnap' # bin/bundle require 'bootsnap' Bootsnap.setup( cache_dir: 'tmp/cache', development_mode: ENV['RAILS_ENV'] == 'development', load_path_cache: true, autoload_paths_cache: true, disable_trace: false, compile_cache_iseq: true, compile_cache_yaml: true, )
It plays nicely with spring by speeding up the pre-fork and post-fork. Definitely a gem worth watching out for.