[erlang-questions] Benchmarks
Henning Diedrich
hd2010@REDACTED
Tue Jan 12 15:46:41 CET 2010
Thanks a lot for elaborating -- !
I am still looking for a briefer expression of the posted answers. Which
can't replace the understanding of the right application domain as you
are pointing out, but may simply serve different purpose.
Maybe there is a link somewhere I don't find and you can point me to it.
Maybe not and you could help correct and complete the following? It is
guessed and interpolated, trying to describe what I am looking for. And
it needs not be exact, it's a matter of magnitudes - and brevity and
simplicity of talking points in business situations.
Erlang Java C++
C PHP Ruby Python Stackless Haskell Go FORTRAN
Max processes/ Threads on an average* machine 100,000 10,000
Time to create a process/thread in us ~10 ~100
Footprint of process/thread in KB 1 8
Expressiveness in LOC per LOC in C 4 1
Performance in Ring Passing Benchmark (1/sec)
FLOP/s with built in float format
Best known uptime nines of production products 9
Biggest known commercial systems in LOC n*10^7
Biggest known commercial systems in team members n*10^2
Killable by loose pointers no
Killable by memory access dead locks no
Arguable tendency to run at first compile yo lo
Transparent use of multicore architecture yes no no no
Built in arbitrary precision math yes ?
Easy to use built in string handling no
+ ...!
*whatever that is, obviously only important for comparison of magnitudes
and so eventually mostly cancelled out, and let's even use a multicore
here playing to the Erlang VM's strengths, where that can make a
difference ...
... and clearly designate the weaker sides, too, if you will.
Sure, to answer the question for fitness of purpose must rely on
clarifying what the purpose is, but benchmarks may still govern what
get's on the short list in the first place. Maybe particularily Erlang's
strength's defy being measured in numbers? I can't imagine that AT ALL.
All the parallel stuff plays into its hands. If it's number crunching
that makes Erlang look bad, then the more suitable benchmark tests are
of interest.
To get out of defensive mode vs. other languages, the matter of the fact
is that I'd be on the lookout for something as brief as, and projecting
as much science as, a factor or percentile. I am saying projecting
science. But of course, not made up, either.
Shifting the buts and ifs to the part of the detractors then,
preferrably. Who might then go ahead, if they prefer, to point out how
the test was skewed, allegedly in favor of Erlang. Someone will always
rightly have to explain something.
There are findings along the line of "1/4 of code compared to C", even
if (or especially if!) not arrived at by a simple formula, but by a
hands on experiment like Richard Jones (, Esq.)
"Rewriting Playdar: C++ to Erlang, massive savings"
http://www.metabrew.com/article/rewriting-playdar-c-to-erlang-massive-savings
Certainly any "fact", if benchmark result or anecdotical wisdom, will be
debatable.
But are there more like
http://pseudogreen.org/blog/erlang_vs_stackless_vs_multitask.html
http://www.joeandmotorboat.com/2009/01/03/nginx-vs-yaws-vs-mochiweb-web-server-performance-deathmatch-part-2/
http://www.sics.se/~joe/apachevsyaws.html
and are the individual, published answers to Joe Armstrong's ring
benchmark tasks coalesking into a clear picture? What is Erlang's sure
fire, small talk, chocolate benchmark?
From the latter link you could come away saying that an Erlang server
could do 20 times more sessions than Apache. Did this hold up? I thought
it was discussed heatedly but is that 20x factor regarded as valid
statement in the Erlang community today?
Are there current benchmarks along the lines of
"Performance Measurements of Threads in Java and Processes in Erlang"
http://www.sics.se/~joe/ericsson/du98024.html
which latter would allow to state that Erlang can create processes
around a hundred times faster than Java creates new threads and can use
ten times more (only??) of them etc.
The notion that for an actor model language, a comparison of processes
and objects might make more sense than processes and threads sometimes,
is then part of the ifs and buts. And rightly so. But anyone listening
to anyone evangelizing will add a grain of salt anyway. There are
qualifications with every number out there. But what are the Erlang ones?
I refrained from studying Armstrong's thesis and the Motorola study, so
I am not aware what I may be missing there.
Thanks,
Henning
Ulf Wiger wrote:
More information about the erlang-questions
mailing list