~/talk

Concurrency in Ruby: From fork() to Fiber

Talkat XO Ruby Chicago 2025 · on Saturday, 2025-09-06· [ruby]
links:none on file
slides:none on file

Builds a simple TCP server, measures throughput, and shows concrete results: the serial loop manages ~17 req/s, fork()/processes add true parallelism but hit Docker CPU limits (4 cores), threads + GVL speed IO (sleep/DB) but not CPU work, a thread pool helps, fibers + async gem yield huge IO wins and plus pre-forking edges out threads, and the real bug is a CPU‑bound queue with many threads — fix by raising process count. ractors not production-ready

AI-written summary · about

  1. 0:00Concurrency in Ruby intro
  2. 2:38Concurrency vs parallelism
  3. 6:10Ruby concurrency overview
  4. 6:32Processes for parallelism
  5. 10:26Processes benefits and limitations
  6. 10:47Threads and the GVL
  7. 13:40Thread pools in practice
  8. 15:26Fibers as coroutines
  9. 17:52Async servers with Fiber
  10. 19:59Solving the original performance problem
  11. 21:01Ruby concurrency tools recap
  12. 21:25Ractors introduction
  13. 24:17Q&A on Ractors
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.