bundlerより高速なGem ManagerのGelを試してみた

投稿日時:
Ruby


)RubyKaigi 2019で紹介されていたGelというGemを試してみました。


スライドはこちら


Githubのページはこちら



このGelというGemはbundlerのようにGemを管理するGemです。

ではbundlerとの違いは何かというと、以下の点が違いのようです。

(Githubのページから引用しています。)


Some real world examples of the types of performance improvements Gel provides over Bundler are as follows:

% gel exec rake -version: 55% faster than bundle
% gel exec rails --version: 60% faster than bundle
% gel exec rails runner nil: 45% faster than bundle
Comparing using a complex, mature Rails application:

% gel install: 55% faster than bundle
% gel lock: 78% faster than bundle on first run
% gel lock: 95% faster than bundle on later runs (cache exists)

つまり、bundlerより高速、というのが売りらしいです。


早速試してみました。


exec


bundler。


$ time bundle exec rake --version
rake, version 12.3.1

real    0m1.093s
user    0m0.579s
sys    0m0.256s

gel。


$ time gel exec rake --version
rake, version 12.3.1

real    0m0.376s
user    0m0.185s
sys    0m0.106s

gelの方が確かに早い。


install

bundler。


$ time bundle install --path vendor/bundle

real    2m52.122s
user    1m21.941s
sys    0m46.759s

次にgel。


$ time gel install

real    1m31.628s
user    1m38.967s
sys    0m49.919s

gelのほうが確かに早い。


lock


bundler。


$ time bundle lock

real    0m3.922s
user    0m2.619s
sys    0m0.668s

gel。


$ time gel lock

real    0m3.785s
user    0m2.334s
sys    0m0.424s

これは何回かいろんなGemfile等で試してみましたが、そこまで差はありませんでした。


所感


確かにbundlerより早かったです。

が、まだまだ記事も少なく実運用に載せるのは難しいかなと思います。


実際に、私が保有しているRailsアプリをbundlerではなくgelで動作させてみようと頑張ってみましたが、

エラーが出て結局起動まで持っていけませんでした。


が、早いのは確かなのでこれから注目していこうと思います。



しかし、個人的には現段階ではbundlerから乗り換えるメリットはあまりないように感じました。


確かに早いですが、bundlerが特別遅いというわけでもないので、乗り換えるほどの価値は私的にはないかなと思います。