
> Bootsnap is a library that plugs into Ruby, with optional support > for ActiveSupport and YAML, to optimize and cache expensive > computations. https://github.com/Shopify/bootsnap For our case that translates to "repeated calls to `brew` have reductions in the time spend `require`ing speeding up the process boot time". For example: ``` $ hyperfine --warmup=2 "unset HOMEBREW_BOOTSNAP; brew info wget" "export HOMEBREW_BOOTSNAP=1; brew info wget" Benchmark #1: unset HOMEBREW_BOOTSNAP; brew info wget Time (mean ± σ): 2.417 s ± 0.032 s [User: 659.0 ms, System: 855.5 ms] Range (min … max): 2.382 s … 2.464 s 10 runs Benchmark #2: export HOMEBREW_BOOTSNAP=1; brew info wget Time (mean ± σ): 1.862 s ± 0.064 s [User: 425.3 ms, System: 566.8 ms] Range (min … max): 1.736 s … 1.952 s 10 runs Summary 'export HOMEBREW_BOOTSNAP=1; brew info wget' ran 1.30 ± 0.05 times faster than 'unset HOMEBREW_BOOTSNAP; brew info wget' ```
37 lines
944 B
Ruby
37 lines
944 B
Ruby
# frozen_string_literal: true
|
|
|
|
source "https://rubygems.org"
|
|
|
|
# installed gems (should all be require: false)
|
|
gem "bootsnap", require: false if ENV["HOMEBREW_BOOTSNAP"]
|
|
gem "byebug", require: false
|
|
gem "codecov", require: false
|
|
gem "nokogiri", require: false
|
|
gem "parallel_tests", require: false
|
|
gem "ronn", require: false
|
|
gem "rspec", require: false
|
|
gem "rspec-github", require: false
|
|
gem "rspec-its", require: false
|
|
gem "rspec-retry", require: false
|
|
gem "rspec-sorbet", require: false
|
|
gem "rspec-wait", require: false
|
|
gem "rubocop", require: false
|
|
gem "rubocop-ast", require: false
|
|
gem "simplecov", require: false
|
|
gem "sorbet", require: false
|
|
gem "sorbet-runtime", require: false
|
|
gem "tapioca", require: false
|
|
|
|
# vendored gems
|
|
gem "activesupport"
|
|
gem "concurrent-ruby"
|
|
gem "mechanize"
|
|
gem "patchelf"
|
|
gem "plist"
|
|
gem "rubocop-performance"
|
|
gem "rubocop-rails"
|
|
gem "rubocop-rspec"
|
|
gem "rubocop-sorbet"
|
|
gem "ruby-macho"
|
|
gem "sorbet-runtime-stub"
|