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

RubyConf BR 2018 - Um paralelo com Ruby

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

RubyConf BR 2018 - Um paralelo com Ruby

Paralelismo é um dos principais alicerces sobre os quais nos apoiamos quando pensamos em otimização de processamento, e é um dos principais pontos criticados no Ruby quanto a performance. Mas será que esse problema é tão grande quanto nos é apontado? Nesta talk apresento uma comparação entre os modelos de concorrência adotados pelo Erlang OTP - sobre o qual a linguagem Elixir está fundamentada - e a implementação de concorrência do Ruby, e como extrair máximo proveito das abordagens. Além disso, trago um preview das principais mudanças que ocorreram neste quesito com a chegada do ruby 3x3

Avatar for Gabriel Leopoldo Ferreira

Gabriel Leopoldo Ferreira

December 13, 2018

More Decks by Gabriel Leopoldo Ferreira

Other Decks in Technology

Transcript

  1. Tempo de execução Mem. 32 minutos 300 MB 4 min

    39 s 400 MB 4 min 34 s 450 MB 4 min 32 s 800 MB # Threads 1 10 25 100
  2. O S BEAM CORE BEAM CORE BEAM CORE BEAM CORE

    OTP process OTP OTP process OTP OTP process OTP OTP process OTP E R T S
  3. O S BEAM CORE BEAM CORE BEAM CORE BEAM CORE

    E R T S “ECO” GREEN THREADS
  4. O S BEAM BEAM BEAM BEAM Green Thread Scheduler E

    R T S Green Thread Scheduler Green Thread Scheduler Green Thread Scheduler Process Scheduler
  5. GIL

  6. O S GUILD CORE GUILD CORE GUILD CORE GUILD CORE

    Ruby threads GLOBAL GUILD LOCK Ruby threads GLOBAL GUILD LOCK Ruby threads GLOBAL GUILD LOCK Ruby threads GLOBAL GUILD LOCK R U B Y V M