Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RubyKaigi 2019 (Gel section)

Matthew Draper
April 18, 2019
2k

RubyKaigi 2019 (Gel section)

Supporting slides from the part of my RubyKaigi 2019 presentation that covered the feature limitations and observed performance of Gel, with comparisons to Bundler and Rubygems.

Matthew Draper

April 18, 2019
Tweet

Transcript

  1. 

  2. install update, lock exec ✅ ✅ ✅ ✅ ✅ ✅

    gem authoring ✅ ❌ vendoring ✅ ❌ ✅ ❌ anything else
  3. bundle install bundle lock bundle exec rake bundle update bundle

    update rails gel install gel lock gel exec rake rake gel update gel update rails
  4. ~% rake -V rake, version 12.3.2 ~% rake -V rake,

    version 12.3.2 ~/proj% bundle exec rake -V rake, version 12.3.0 ~/proj% gel exec rake -V rake, version 12.3.0 ~/proj% rake -V rake, version 12.3.2 ~/proj% rake -V rake, version 12.3.0
  5. % rake --version rake, version 12.3.2 0.18s user 0.10s system

    92% cpu 0.301 total % rake --version rake, version 12.3.2 0.12s user 0.08s system 92% cpu 0.217 total rubygems gel manual 0 0.1 0.2 0.3 0.4
  6. % bundle exec rake --version rake, version 12.3.0 0.49s user

    0.18s system 93% cpu 0.712 total % gel exec rake --version rake, version 12.3.0 0.18s user 0.11s system 88% cpu 0.323 total bundler gel manual 0 0.2 0.4 0.6 0.8
  7. % bundle exec rails --version Rails 5.2.2.1 0.97s user 0.34s

    system 98% cpu 1.335 total % gel exec rails --version Rails 5.2.2.1 0.36s user 0.16s system 96% cpu 0.538 total bundler gel 0 0.35 0.7 1.05 1.4
  8. % bundle exec rails runner nil 6.08s user 3.00s system

    99% cpu 9.139 total % gel exec rails runner nil 4.01s user 0.94s system 98% cpu 4.994 total bundler gel 0 2.5 5 7.5 10
  9. ~/buildkite% bundle install -j4 123 Gemfile dependencies, 224 gems now

    installed. 215.19s user 74.12s system 83% cpu 5:46.91 total ~/buildkite% gel install Installed 223 gems 255.75s user 74.45s system 208% cpu 2:38.29 total bundler gel 0 100 200 300 400
  10. GEM remote: https://rubygems.org/ specs: diff-lcs (1.3) equatable (0.5.0) kramdown (1.16.2)

    necromancer (0.4.0) pastel (0.7.2) equatable (~> 0.5.0) tty-color (~> 0.4.0) rouge (3.3.0) strings (0.1.5) strings-ansi (~> 0.1) unicode-display_width (~> 1.5) unicode_utils (~> 1.4) strings-ansi (0.1.0) thor (0.20.3) timers (4.3.0) tty (0.9.1) bundler (~> 1.16, < 2.0) equatable (~> 0.5) pastel (~> 0.7.2) thor (~> 0.20.0) tty-box (~> 0.3.0) tty-color (~> 0.4) tty-command (~> 0.8.0) tty-config (~> 0.3.0) tty-cursor (~> 0.6) tty-editor (~> 0.5.0) tty-file (~> 0.7.0) tty-font (~> 0.2.0) tty-markdown (~> 0.5.0) tty-pager (~> 0.12.0) tty-pie (~> 0.1.0) tty-platform (~> 0.2.0) tty-progressbar (~> 0.16.0) tty-prompt (~> 0.18.0) tty-screen (~> 0.6) tty-spinner (~> 0.9.0) tty-table (~> 0.10.0) tty-tree (~> 0.2.0) tty-which (~> 0.4) tty-box (0.3.0) pastel (~> 0.7.2) strings (~> 0.1.4) tty-cursor (~> 0.6.0) tty-color (0.4.3) tty-command (0.8.2) pastel (~> 0.7.0) tty-config (0.3.1) tty-cursor (0.6.1) tty-editor (0.5.0) tty-prompt (~> 0.18) tty-which (~> 0.4) tty-file (0.7.0) diff-lcs (~> 1.3) pastel (~> 0.7.2) tty-prompt (~> 0.18) tty-font (0.2.0) tty-markdown (0.5.1) kramdown (~> 1.16.2) pastel (~> 0.7.2) rouge (~> 3.3) strings (~> 0.1.4) tty-color (~> 0.4) tty-screen (~> 0.6) tty-pager (0.12.1) strings (~> 0.1.4) tty-screen (~> 0.6) tty-which (~> 0.4) tty-pie (0.1.0) pastel (~> 0.7.2) tty-cursor (~> 0.6.0) tty-platform (0.2.0) tty-progressbar (0.16.0) strings-ansi (~> 0.1.0) tty-cursor (~> 0.6.0) tty-screen (~> 0.6.4) unicode-display_width (~> 1.3) tty-prompt (0.18.1) necromancer (~> 0.4.0) pastel (~> 0.7.0) timers (~> 4.0) tty-cursor (~> 0.6.0) tty-reader (~> 0.5.0) tty-reader (0.5.0) tty-cursor (~> 0.6.0) tty-screen (~> 0.6.4) wisper (~> 2.0.0) tty-screen (0.6.5) tty-spinner (0.9.0) tty-cursor (~> 0.6.0) tty-table (0.10.0) equatable (~> 0.5.0) necromancer (~> 0.4.0) pastel (~> 0.7.2) strings (~> 0.1.0) tty-screen (~> 0.6.4) tty-tree (0.2.0) tty-which (0.4.0) unicode-display_width (1.5.0) unicode_utils (1.4.0) wisper (2.0.0) PLATFORMS ruby DEPENDENCIES tty BUNDLED WITH 1.17.1
  11. ~/tty% bundle install -j4 1 Gemfile dependency, 23 gems now

    installed. 2.61s user 1.02s system 83% cpu 4.352 total ~/tty% gel install Installed 23 gems 0.62s user 0.53s system 87% cpu 1.327 total bundler gel 0 1.25 2.5 3.75 5
  12. ~/tty% bundle lock 1.10s user 0.32s system 90% cpu 1.562

    total ~/tty% gel lock 0.75s user 0.13s system 85% cpu 1.032 total bundler gel 0 0.4 0.8 1.2 1.6
  13. buildkite% rm Gemfile.lock && bundle lock Fetching https://github.com/buildkite/zxcvbn-ruby.git Fetching https://github.com/buildkite/pghero.git

    Fetching https://github.com/buildkite/simplecov.git Fetching https://github.com/ticky/simplecov-buildkite.git Fetching source index from https://gems.graphql.pro/ Fetching source index from https://enterprise.contribsys.com/ Fetching gem metadata from https://rubygems.org/. Fetching source index from https://rubygems.org/ Resolving dependencies... Writing lockfile to ./Gemfile.lock bundle lock 14.30s user 1.98s system 18% cpu 1:29.67 total ........ ...................
  14. buildkite% rm Gemfile.lock && gel lock Fetching sources... Resolving dependencies...

    Writing lockfile to ./Gemfile.lock gel lock 2.77s user 0.60s system 78% cpu 4.316 total ....... ..........
  15. ~/buildkite% bundle lock 14.30s user 1.98s system 18% cpu 1:29.67

    total ~/buildkite% gel lock 2.77s user 0.60s system 78% cpu 4.316 total bundler gel 0 30 60 90 120
  16. ~/buildkite% bundle lock 14.66s user 2.10s system 15% cpu 1:51.15

    total ~/buildkite% gel lock 9.42s user 1.99s system 46% cpu 24.400 total bundler gel 0 30 60 90 120 (no cache / first run)
  17. quiet_assets railties >= 3.1, < 5.0 activesupport >= 3.1, <

    5.0 activerecord activesupport quiet_assets 1.1.0 railties 4.2.11.1 activesupport 4.2.11.1 activerecord 4.2.11.1
  18. ~/quiet% bundle lock 120.18s user 1.10s system 99% cpu 2:02.42

    total ~/quiet% gel lock 4.18s user 0.17s system 96% cpu 4.494 total bundler gel 0 35 70 105 140