[erlang-questions] How to prove the erlang performance?

Ulf Wiger ulf.wiger@REDACTED
Mon Jan 11 13:39:00 CET 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

NavTux wrote:
> How to prove the performance of erlang?
> 
> We know the familiar language java is well developed,in case we are
> erlang lovers how to prove the erlang's performance and ehat the tools
> are needed for it?

I would say that Erlang is pretty well developed too, to the point
where you will find little or no "low-hanging fruit". It is important
to realize that there are lots of design decisions and tradeoffs
to be made when creating a language and optimizing for performance.

Making the fastest possible language was never a design goal with
Erlang. The primary goals were to make a language suitable for
building non-stop complex control systems. This presents all kinds
of obvious tradeoffs:

- - soft-real-time scheduling of thousands of concurrent activities
  is clearly at odds with maximum sequential performance.
- - Dynamic typing is superb for dynamic code change in large systems,
  but has a performance penalty.
- - Dynamic call and message tracing is wonderful for debugging of
  embedded systems, but carry some runtime overhead.
- - Share-nothing concurrency will help you stay sane, but may
  incur unnecessary copying in some cases.
- - Dynamic memory management simplifies things greatly, and can
  often lead to both better performance and less memory usage,
  but your mileage will vary depending on the problem.

BTW, did you really mean "prove performance"? I read it as
"improve performance". In either case, the answer depends on what
aspects of performance you are interested in, and what your
problem domain is.

On the topic of proving performance, I would say that the tools
for analysing performance in applications with tens of thousand
concurrent processes, starting and stopping hundreds of processes
every second, are *at least* as well developed for Erlang as they
are for Java. This goes both for profiling tools and verification
tools. Verifying massively concurrent applications is a research
topic, but I daresay that the Erlang crowd is on the leading
edge here. Heck, even the Erlang debugger is capable of debugging
distributed and massively concurrent systems, even though stop-and-
go debugging is often extremely inconvenient in embedded real-time
applications.

BR,
Ulf W
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAktLG+QACgkQtqqFieqzed3oSwCfb8fPILeNH3CBrjpPz7yAhQ90
eEcAoKk0haRwQeufZbiWZPOgh37wZsbI
=stHl
-----END PGP SIGNATURE-----
---------------------------------------------------

---------------------------------------------------

WE'VE CHANGED NAMES!

Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.

www.erlang-solutions.com



More information about the erlang-questions mailing list