Erlang processes vs. Java threads

Tony Garnock-Jones wrote “Earlier today I ran a simple test of Erlang’s process creation and teardown code, resulting in a rough figure of 350,000 process creations and teardowns per second. Attempting a similar workload in Java gives a figure of around 11,000 thread creations and teardowns per second – to my mind, a clear demonstration of one of…”

How fast can Erlang send messages?

Tony Garnock-Jones wrote “My previous post examined Erlang’s speed of process setup and teardown. Here I’m looking at how quickly messages can be sent and received within a single Erlang node. Roughly speaking, I’m seeing 3.4 million deliveries per second one-way, and 1.4 million roundtrips per second (2.8 million deliveries per second) in a ping-pong setup in the…”

How fast can Erlang create processes?

Tony Garnock-Jones wrote “Very fast indeed. 1> spawntest:serial_spawn(1). 3.58599e+5 That’s telling me that Erlang can create and tear down processes at a rate of roughly 350,000 Hz. The numbers change slightly – things slow down – if I’m running the test in parallel: 2> spawntest:serial_spawn(10). 3.48489e+5 3> spawntest:serial_spawn(10). 3.40288e+5 4> spawntest:serial_spawn(100). 3.35983e+5 5> spawntest:serial_spawn(100). 3.36743e+5 [Update: I forgot…”

Random in Erlang

Matthew Sackman wrote “I was recently trying to fix our Erlang Jukebox (which Tony is still owing a Blog Post for (and once he’s done that I can write a blog post on adding m3u support to our Erlang Jukebox (and some time after that it should be opensourced…))) so that it would randomly enqueue the wrong track,…”

Fair messaging in Erlang

Matthew Sackman wrote “One of the new projects that I’m working on involves a messaging infrastructure in Erlang. Without boring you with the details, the basic idea is that there are two types of messages, A and B and these are both sent to a thread (or a *process* in Erlang). One A must be paired with one…”

Static analysis of Erlang communication

Matthias Radestock wrote “I had a brief email exchange with the developers of [Dialyzer](, the static analyzer (some might call it a type checker) for [Erlang]( programs. Currently Dialyzer only performs analysis on the functional fragment of Erlang and I was enquiring whether to extend that to handle communication. That would allow the detection of basic input/output mismatches,…”