Saturday, January 12, 2013 How Erlang does scheduling In this, I
describe why Erlang is different from most other language
runtimes. I also describe why it often forgoes throughput for
lower latency. TL;DR - Erlang is different from most other
language runtimes in that it targets different values. This
describes why it often seem to perform worse if you have few
processes, but well if you have many. From time to time the
question of Erlang scheduling gets asked by different people.
While this is an abridged version of the real thing, it can act
as a way to describe how Erlang operates its processes. Do note
that I am taking Erlang R15 as the base point here. If you are a
reader from the future, things might have changed quite a
lot—though it is usually fair to assume things only got better,
in Erlang and other systems. Toward the operating system, Erlang
usually has a thread per core you have in the machine. Each of
these threads runs what is known as a scheduler. This is to make
sure all cores of the machine