Performance depends upon the problem you want to solve.<div><br></div><div>If X is N times faster than Y for solving problem P it does not mean that</div><div>X is N times faster than Y for solving any other problem than P.</div>
<div><br></div><div>If P involves non-stop operation, code change on the fly, massive parallelism, massive concurrency, good overload protection, soft real-time garbage collection, ability to scale, faut-tolerance then Erlang is suitable.</div>
<div><br></div><div>Micro-benchmarks don't measure this kind of stuff. <br></div><div><br></div><div>Nobody implements, for example, the entire 3GPP standard for fun in languages X and Y and compares the results - this would take thousands of man years.</div>
<div><br></div><div>The only place where comparative benchmarking is done is where the benchmarks are small and easy to write.</div><div><br></div><div>It's rather like chemistry, there is a reason why chemical plants don't have</div>
<div>200 ft high test tubes - lab experiments (done with test tubes) don't scale.</div><div><br></div><div>This is like software - micro benchmarks tell you little about macro behavior.</div><div><br></div><div>If a web server behaves well for 1 user it does not mean it will behave well for 100M users, unfortunately you can't easily do the experiment for 100M users. </div>
<div><br></div><div>Now there are good reasons for using Erlang and there are good reasons for not using Erlang - it would do people a dis-service to suggest that Erlang is good for</div><div>everything - which it is not.</div>
<div><br></div><div>Erlang was designed to be good at fault-tolerance, scalability, code-change on-the fly</div><div>(these kind of things) - but there are no benchmarks that measure this.</div><div><br></div><div>How do you measure fault-tolerance? Write the system in 10 different languages and run for five years and tell me the results - it's not going to happen.</div>
<div><br></div><div>Rule of thumb: Type A - small memory intensive computations - local memory - "maths" - use C.</div><div><br></div><div>Type B - Fault-tolerance, code change on the fly, scalable, non-stop operation, massive concurrency, distribution, soft-real time response, networking .. ues Erlang</div>
<div><br></div><div>Don't apply type A benchmarks to type B problems.</div><div><br></div><div>In type B there are no benchmarks - here the problem is usually getting the</div><div>stuff to work at-all - this is why benchmarks are skewed towards type A problems.</div>
<div><br></div><div>Beging good at type A problems does not mean you will be good at type B systems.</div><div><br></div><div>(The there is the hybrid approach - use Erlang to co-ordinate and distribute type</div><div>A tasks)</div>
<div><br></div><div>Cheers</div><div><br></div><div>/Joe</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Fri, Nov 9, 2012 at 9:42 AM, hume npx <span dir="ltr"><<a href="mailto:humeafo@gmail.com" target="_blank">humeafo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Hi, all:</div><div> I'am new to erlang, after investigate some benchmark such as at <a href="http://shootout.alioth.debian.org/u64q/which-programs-are-fastest.php" target="_blank">http://shootout.alioth.debian.org/u64q/which-programs-are-fastest.php</a>, 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.</div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>