Otimize o seu Bundler

Otimize o seu Bundler

Se você já usou Ruby on Rails em algum projeto, fatalmente utilizou o Bundler e hoje trarei uma dica simples, porém, muito valiosa, principalmente para grandes projetos.
Para quem não sabe, o Bundler é um gerenciador de dependências de projetos Ruby e sua mágica consiste em baixar e instalar as dependências de seu projeto com um simples bundle install.
A dica está justamente aí: em um projeto muito grande, quando damos o bundle install, ele baixa todas as dependências – mas, o que poucos sabem, é que podemos rodar essas dependências de forma paralela, fazendo com o que o processo todo seja muito mais rápido.
Há duas maneiras de fazer o Bundler baixar as dependências paralelamente:
1- rodando sempre
bundle install –jobs=4 #4 são os núcleos do seu processador
2- ou configurando o Bundler para sempre rodar paralelamente
bundle config –global jobs 4
Se optar pela segunda forma, você rodará apenas o bundle install normal e ele sempre baixará paralelamente suas dependências. Para termos uma ideia da diferença, fiz um teste em um projeto que tenho dependência de 60 gems no Gemfile.
time bundle install –path=./gems –quiet –force –jobs=1
real    1m25.117s
user   0m22.408s
sys    0m2.484s
time bundle install –path=./gems –quiet –force –jobs=4
real    0m33.691s
user   0m19.100s
sys    0m2.172s
No exemplo podemos ver como foi mais rápido o bundle usando todos os processadores de minha máquina, baixando as dependências de forma paralela.
Caso você use Linux, ao invés de colocar o número de núcleos hard coded, você pode usar o $(nproc) no lugar do número fixo e obterá o mesmo resultado.
Além de baixar paralelamente, você também pode configurar outras variáveis do bundler atrás do arquivo de config ~/bundle/config
BUNDLE_JOBS: “4”
BUNDLE_WITHOUT: “production”
Caso queria dar uma olhada em todas as configs do bundler, confira o doc que é muito bom.
Gostou da dica e quer ver outras nesse estilo? Deixe um comentário. :)
O post Otimize o seu Bundler apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Otimize o seu Bundler
Fonte: Locaweb