[erlang-questions] About Erlang system performance

Patrik Nyblom <>
Fri Nov 9 15:28:29 CET 2012


On 11/09/2012 09:42 AM, hume npx wrote:
> Hi, all:
>   I'am new to erlang, after investigate some benchmark such as at 
> http://shootout.alioth.debian.org/u64q/which-programs-are-fastest.php, 
> I found that erlang compiler is not so good at speed? the benchmark 
> shows that erlang Hipe is 13x slowdown compared to C++, as compared to 
> Haskell GHC (3.3x slowdown), go 2.98x slowdown or even javascript v8 
> is about 1x faster than erlang, I investigated the erLLVM project 
> which reported similar results to Hipe, you know performance is so 
> important nowadays, what caused the hard to improve performace of 
> erlang or just there are not people working on it? Erlang is 
> attractive to me after several days studying, but with great 
> performance will be more attractive and competitive to some languages 
> such as go etc.
The thing is - Erlang is a concurrent programming language, so it's 
optimized for concurrency and the problems therein. HiPE optimizes the 
sequential part of the system, but cannot do anything about schedulers 
etc, so it does not affect the concurrency characteristics (which it 
shouldn't either). HiPE does a really good job, but for sequential 
mini-benchmarks, HiPE or no HiPE will never be as fast as C++. We do not 
optimize for that either. Comparing HiPE to i.e. GCH, OCaml or any other 
common native compiler is really unfair. The other compilers make 
binaries directly on top of the OS, with no support for massive 
concurrency in any VM. Not to say that aren't really good compilers, but 
they solve a different problem.

Building large systems with Erlang will show the whole picture, not 
running micro benchmarks. If your business is to sell game-of-life, 
rannkuch-redux or mandelbrot programs, you will get severely 
disappointed if trying to make the fastest program in Erlang. If you on 
the other hand is writing a large server, you will be surprised about 
what level of concurrency, what uptime and what hardware utilization you 
will achieve.

So - we are really working on optimization, but not on optimizing 
benchmarks, but on making it possible to implement highly available, 
scalable, parallell and concurrent systems.
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
Cheers,
Patrik
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121109/3a28fcc4/attachment.html>


More information about the erlang-questions mailing list