Re:Comparing Languages for Engineering Server Software: Erla...
by tonyg on Wednesday June 20, 2018 @06:20AM
(#17353991)
Hi Phil,
One thing you might find interesting - a small, crude experiment suggests that changing maxBlocking.erl to use process hibernation for those dormant processes could almost double the max number of processes Erlang can support.
I changed maxBlocking.erl's final few lines to read
p() ->
erlang:hibernate(?MODULE, q, []).
q() ->
receive
"hello" ->
io:format("Hello")
end.
RabbitMQ uses hibernation in many places to reduce memory usage when many resources are being managed by the server.
With regards the "alternatives considered", Section 2 outlines key characteristics of server languages, and Table 1 analyses a selection of languages against these characteristics.
We welcome others to report results for other languages using the benchmarks.