Aller au contenu

Is Your Elixir Code Actually Fast? Tobias Pfeiffer on Benchmarking

18 septembre 2026 · 1 h 11 min

Notes de l’épisode

Everyone has an opinion about whether the BEAM is fast or slow. Almost nobody has actually measured it properly.

Tobias Pfeiffer -PragTob on the internet, benchmarking nerd, real-time engineer at Supabase -came to Elixir from Ruby because Ruby couldn't handle WebSockets at scale. Then he learned the language the way he learns every language: by building a benchmarking library. Ten years later, Benchee is what most of the Erlang and Elixir world reaches for when it wants a number instead of an argument.

Topics include:

  • why Tobias writes a benchmarking library every time he learns a new language -and what that discipline actually teaches about how a runtime works

  • the production scar: a benchmark that showed one query was faster, deployed it, and discovered the benchmark had been measuring the wrong input entirely

  • the single most important insight about benchmarking: most people quietly fool themselves and walk away more confident and more wrong than when they started

  • inputs as a first-class feature -the lesson José Valim taught Tobias within 17 minutes of an open GitHub issue

  • why body-recursive map is faster than tail-recursive map for small lists on the BEAM -and what that tells you about the runtime

  • what reductions are, why they're a more stable measurement than wall time, and when they diverge

  • how Benchee measures memory: spawning a monitored process, watching GC events, reporting exact bytes -and why deterministic code gives deterministic memory

  • the JSON benchmarking arms race -built-in OTP JSON, jason, Jiffy, and why comparison benchmarks usually miss the point

  • why Benchee has no macros, no DSL, and deliberately only uses functions -and why that design decision made it composable in ways nobody predicted

  • the hardest benchmarking mistake to stop making: confusing latency and throughput

  • what Toby wishes more Elixir developers understood about BEAM performance before they opened a PR claiming something was faster

Recorded August 21, 2026.

Resources mentioned:

  • Benchee on Hex: hex.pm/packages/benchee

  • Benchee HTML formatter -self-contained HTML output with downloadable graphs

  • Benchee markdown formatter

  • PragTob on GitHub: github.com/bencheeorg

Tous les épisodes de BEAM There, Done That

Paramètres

Affichage

Langue

Détermine les stations affichées en premier sur la page d’accueil.

Historique

Les stations et épisodes écoutés récemment et tes dernières recherches sont seulement enregistrés dans ce navigateur.

Notifications

Un court message quand un podcast que tu suis publie un nouvel épisode. Désactive un podcast précis avec la cloche sur sa page.

Compte

Enregistrez vos favoris – dans l’app et sur le site.

Raccourcis clavier

/
Ouvrir la recherche
Espace
Lecture ou pause
← →
Dans le lecteur : 15 s en arrière, 30 s en avant (épisodes) · dans une rangée : tuile suivante
↑ ↓
Dans une rangée : cible dans la tuile
Début / Fin
Dans une rangée : première ou dernière tuile
Esc
Fermer la fenêtre ou le menu
?
Cet aperçu
En cours de lecture

Voir la station

À suivre

    Ajoutez des épisodes avec « À suivre » – ils seront lus après l'épisode en cours.