SlideShare una empresa de Scribd logo
1 de 65
Why Bundler 1.1 will be much faster


Pat Shaughnessy
@pat_shaughnessy
http://patshaughnessy.net
http://rubysource.com
Don’t kill the messenger
(or praise)
Don’t kill the messenger
Fetching source index for
  http://rubygems.org/
HTTP
Bundler 1.0           RubyGems.org




    Fetching source index for
      http://rubygems.org/
What is the “source index?”
What's inside "specs.4.8"?
What about gem
dependency information?
Example: bundle install with
  a very simple Gemfile
Bundler 1.0               RubyGems.org


              specs.4.8
Bundler 1.0               RubyGems.org


                    specs.4.8




Bundler 1.0                        RubyGems.org


            prerelease_specs.4.8
Bundler 1.0                RubyGems.org


                     specs.4.8



      Bundler 1.0                RubyGems.org


                prerelease_specs.4.8




Bundler 1.0                            RubyGems.org


           uglifier-1.0.4.gemspec
Bundler 1.0                 RubyGems.org


                        specs.4.8




         Bundler 1.0                 RubyGems.org


                   prerelease_specs.4.8




         Bundler 1.0                 RubyGems.org


                   uglifier-1.0.4.gemspec




Bundler 1.0                                RubyGems.org


          execjs-1.2.9.gemspec
Bundler 1.0                     RubyGems.org


                             specs.4.8



              Bundler 1.0                 RubyGems.org


                        prerelease_specs.4.8


              Bundler 1.0                 RubyGems.org


                        uglifier-1.0.4.gemspec



              Bundler 1.0                 RubyGems.org


                        execjs-1.2.9.gemspec




Bundler 1.0                                      RubyGems.org


         multi_json-1.0.3.gemspec
etc...
What's the problem with this picture?
Bundler 1.0 downloads and parses the
entire source index - not really needed
One HTTP request per gem during
  the bundler resolve algorithm
It turns out that most of the time
      isn’t spent downloading
Running in Ruby 1.9.3, the
same iteration is a lot faster
Fetching metadata from
 http://rubygems.org/...
HTTP
Bundler 1.1           RubyGems.org




     Fetching metadata from
      http://rubygems.org/...
http://rubygems.org/api/v1/dependencies?gems=...
Example: bundle install with
  a very simple Gemfile
uglifier
uglifier




http://rubygems.org/api/v1/dependencies?gems=uglifier
uglifier




multi_json       execjs         json     therubyracer

http://rubygems.org/api/v1/dependencies?gems=uglifier
uglifier




multi_json      execjs          json    therubyracer




      http://rubygems.org/api/v1/dependencies?
      gems=multi_json,execjs,json,therubyracer
uglifier




multi_json      execjs         json     therubyracer




              multi_json                    libv8


      http://rubygems.org/api/v1/dependencies?
      gems=multi_json,execjs,json,therubyracer
uglifier




multi_json   execjs         json    therubyracer




                                        libv8




                  http://rubygems.org/api/v1/dependencies?gems=libv8
uglifier




multi_json   execjs         json    therubyracer




                                        libv8




                                      [ Empty ]
                  http://rubygems.org/api/v1/dependencies?gems=libv8
This is faster because...
3 HTTP requests, instead of many more
Each HTTP request was
     very, very fast
People worked together to
make all of our lives easier!
Why Bundler 1.1 will be much faster


Pat Shaughnessy
@pat_shaughnessy
http://patshaughnessy.net
http://rubysource.com
bundle outdated

bundle outdated --pre
bundle clean
bundle install --standalone

Más contenido relacionado

La actualidad más candente

Nodejs quick start
Nodejs quick startNodejs quick start
Nodejs quick start
Guangyao Cao
 
12 Rocking Apache .htaccess Tutorial ...
12 Rocking Apache .htaccess Tutorial ...12 Rocking Apache .htaccess Tutorial ...
12 Rocking Apache .htaccess Tutorial ...
wensheng wei
 
Open Text Archive Server 10.0.0
Open Text Archive Server 10.0.0Open Text Archive Server 10.0.0
Open Text Archive Server 10.0.0
petr_pis
 
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphereCodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
Codecamp Romania
 
Matthew Vignau: Memory Management in SharePoint 2007 Development
Matthew Vignau: Memory Management in SharePoint 2007 DevelopmentMatthew Vignau: Memory Management in SharePoint 2007 Development
Matthew Vignau: Memory Management in SharePoint 2007 Development
SharePoint Saturday NY
 
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil BartlettDeploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
mfrancis
 

La actualidad más candente (20)

Nodejs quick start
Nodejs quick startNodejs quick start
Nodejs quick start
 
12 Rocking Apache .htaccess Tutorial ...
12 Rocking Apache .htaccess Tutorial ...12 Rocking Apache .htaccess Tutorial ...
12 Rocking Apache .htaccess Tutorial ...
 
Open Text Archive Server 10.0.0
Open Text Archive Server 10.0.0Open Text Archive Server 10.0.0
Open Text Archive Server 10.0.0
 
Exploiting null byte vm
Exploiting null byte vmExploiting null byte vm
Exploiting null byte vm
 
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphereCodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
 
London Hug 20/6 - Clustering RabbitMQ using Consul
London Hug 20/6 - Clustering RabbitMQ using ConsulLondon Hug 20/6 - Clustering RabbitMQ using Consul
London Hug 20/6 - Clustering RabbitMQ using Consul
 
Visual Programming Framework for Unity - UniFlow のご紹介
Visual Programming Framework for Unity - UniFlow のご紹介Visual Programming Framework for Unity - UniFlow のご紹介
Visual Programming Framework for Unity - UniFlow のご紹介
 
Matthew Vignau: Memory Management in SharePoint 2007 Development
Matthew Vignau: Memory Management in SharePoint 2007 DevelopmentMatthew Vignau: Memory Management in SharePoint 2007 Development
Matthew Vignau: Memory Management in SharePoint 2007 Development
 
Getting started with rabbitmq
Getting started with rabbitmqGetting started with rabbitmq
Getting started with rabbitmq
 
Socket.IO
Socket.IOSocket.IO
Socket.IO
 
Web socket with php v2
Web socket with php v2Web socket with php v2
Web socket with php v2
 
Nodejs Intro
Nodejs IntroNodejs Intro
Nodejs Intro
 
CommonJS Frameworks
CommonJS FrameworksCommonJS Frameworks
CommonJS Frameworks
 
Install mongo db on centos
Install mongo db on centosInstall mongo db on centos
Install mongo db on centos
 
Real time web: is there a life without socket.io and node.js?
Real time web: is there a life without socket.io and node.js?Real time web: is there a life without socket.io and node.js?
Real time web: is there a life without socket.io and node.js?
 
Quick Introduction to Node.js
Quick Introduction to Node.jsQuick Introduction to Node.js
Quick Introduction to Node.js
 
Websocket protocol overview
Websocket protocol overviewWebsocket protocol overview
Websocket protocol overview
 
Sinatraでわかる!webアプリの仕組み
Sinatraでわかる!webアプリの仕組みSinatraでわかる!webアプリの仕組み
Sinatraでわかる!webアプリの仕組み
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil BartlettDeploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlett
 

Destacado

Manager's manual rpms
Manager's manual rpmsManager's manual rpms
Manager's manual rpms
Julie Alvero
 
City Mouse Mobile - A Case Study
City Mouse Mobile - A Case StudyCity Mouse Mobile - A Case Study
City Mouse Mobile - A Case Study
Serge Krul
 
המילון המלא לשפת המפתחים
המילון המלא לשפת המפתחיםהמילון המלא לשפת המפתחים
המילון המלא לשפת המפתחים
Serge Krul
 
HTML5 - שבירת מיתוסים
HTML5 - שבירת מיתוסיםHTML5 - שבירת מיתוסים
HTML5 - שבירת מיתוסים
Serge Krul
 
The great conversation
The great conversationThe great conversation
The great conversation
yannib
 
Imc approach to marketing and advertising planning
Imc approach to marketing and advertising planningImc approach to marketing and advertising planning
Imc approach to marketing and advertising planning
Reinalyn Merza
 

Destacado (18)

Constructivism
ConstructivismConstructivism
Constructivism
 
Mini Spot Vieni a Ballare in Puglia Matrimonio Alessio e Paola
Mini Spot Vieni a Ballare in Puglia Matrimonio Alessio e PaolaMini Spot Vieni a Ballare in Puglia Matrimonio Alessio e Paola
Mini Spot Vieni a Ballare in Puglia Matrimonio Alessio e Paola
 
Manager's manual rpms
Manager's manual rpmsManager's manual rpms
Manager's manual rpms
 
Coolhunters
CoolhuntersCoolhunters
Coolhunters
 
City Mouse Mobile - A Case Study
City Mouse Mobile - A Case StudyCity Mouse Mobile - A Case Study
City Mouse Mobile - A Case Study
 
הטאו של העיצוב המגיב
הטאו של העיצוב המגיבהטאו של העיצוב המגיב
הטאו של העיצוב המגיב
 
המילון המלא לשפת המפתחים
המילון המלא לשפת המפתחיםהמילון המלא לשפת המפתחים
המילון המלא לשפת המפתחים
 
Hou
HouHou
Hou
 
ιστορια
ιστοριαιστορια
ιστορια
 
Q6
Q6Q6
Q6
 
Web as a Platform - מחקר מגמות
Web as a Platform - מחקר מגמותWeb as a Platform - מחקר מגמות
Web as a Platform - מחקר מגמות
 
HTML5 - שבירת מיתוסים
HTML5 - שבירת מיתוסיםHTML5 - שבירת מיתוסים
HTML5 - שבירת מיתוסים
 
Wellness choices (1)
Wellness choices (1)Wellness choices (1)
Wellness choices (1)
 
Fishing game
Fishing gameFishing game
Fishing game
 
Itismine.ru presentation
Itismine.ru presentationItismine.ru presentation
Itismine.ru presentation
 
Q6
Q6Q6
Q6
 
The great conversation
The great conversationThe great conversation
The great conversation
 
Imc approach to marketing and advertising planning
Imc approach to marketing and advertising planningImc approach to marketing and advertising planning
Imc approach to marketing and advertising planning
 

Similar a Why Bundler 1.1 will be much faster

Frozen Rails Slides
Frozen Rails SlidesFrozen Rails Slides
Frozen Rails Slides
carllerche
 

Similar a Why Bundler 1.1 will be much faster (20)

The Future of Dependency Management for Ruby
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for Ruby
 
The Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of Ruby
 
RVM, Bundler and Ruby Tracker
RVM, Bundler and Ruby TrackerRVM, Bundler and Ruby Tracker
RVM, Bundler and Ruby Tracker
 
Gems on Ruby
Gems on RubyGems on Ruby
Gems on Ruby
 
The Future of library dependency management of Ruby
 The Future of library dependency management of Ruby The Future of library dependency management of Ruby
The Future of library dependency management of Ruby
 
Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3
 
Dependency Resolution with Standard Libraries
Dependency Resolution with Standard LibrariesDependency Resolution with Standard Libraries
Dependency Resolution with Standard Libraries
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
 
The Future of Bundled Bundler
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled Bundler
 
Install Guide
Install GuideInstall Guide
Install Guide
 
What's new in RubyGems3
What's new in RubyGems3What's new in RubyGems3
What's new in RubyGems3
 
How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
 
Quick dive into Ruby on Rails
Quick dive into Ruby on RailsQuick dive into Ruby on Rails
Quick dive into Ruby on Rails
 
Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Ruby - versão SCTI UNF 2013Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Ruby - versão SCTI UNF 2013
 
Automated Releases to RubyGems.org using Travis-CI.org
Automated Releases to RubyGems.org using Travis-CI.orgAutomated Releases to RubyGems.org using Travis-CI.org
Automated Releases to RubyGems.org using Travis-CI.org
 
RubyGems 3 & 4
RubyGems 3 & 4RubyGems 3 & 4
RubyGems 3 & 4
 
Frozen Rails Slides
Frozen Rails SlidesFrozen Rails Slides
Frozen Rails Slides
 
Bundler
BundlerBundler
Bundler
 
RubyGems 3 & 4
RubyGems 3 & 4RubyGems 3 & 4
RubyGems 3 & 4
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 

Why Bundler 1.1 will be much faster

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n