[erlang-questions] performance numbers
Fri Nov 23 08:57:39 CET 2007
I think, your test is wrong. You test single bottle neck code! There
isn't any supprise, when smp code haven't any positive effect.
Everythink what you measured is, that for single bottle neck thread
code is smp enabling useless and in this task is 2.66 GHz Xeon CPU
core faster than 1.5 GHz G4 and this is faster than 2.2 GHz AMD core
and it is faster than sparc 650 MHz. You measured how fast one
gen_server thread can lock and unlock it's internal state, that's all.
I don't trust you that this is really typical load for your task.
--Hynek (Pichi) Vychodil
On 11/15/07, Lev Walkin <> wrote:
> Recently I went out to hunt for a best machine to run Erlang
> code. I did some prototyping and created a performance testing
> suite which loosely simulates the load I'll be giving it.
> Here are the numbers:
> (Unfortunately, the numbers are in tabular form not really suitable
> for email. Click on the link above to have a picture).
> In short, I am surprized to see that my 650 MHz Sun machine
> is TPS-competitive with four-cores (2x2) AMD 2.3 GHz. I am also
> surprized to see that the best mode of compilation is non-smp,
> non-hipe, non-native, single threaded code, unless the code involves
> going out of VM to other systems (e.g., via TCP).
> Some words about the testing. The "Lock" test executes the
> lock/unlock code, which is basically a gen_server doing something
> similar to what you can read in any Erlang book: the resource
> locking code. Sequential version of it does lock/unlock in sequence,
> and Parallel version just runs a bunch of processes (2, 4, 8, 10, 100),
> which generate a series of lock/unlock requests.
> TCP I/O is essentially stress-testing an Erlang library to memcached,
> which is running on the same machine. Distinction between
> Sequential and Parallel modes of execution are essentially the same
> as with Lock code: Parallel is N processes doing a number of
> requests to library which communicates to memcached, whereas
> Sequential is Parallel with N=1. There were thousands of tests
> for each table cell and the best numbers are retained for the table.
> Is there anything specific you'd generally recommend to skew
> these numbers in favor of AMD system? Or Xeon is really the
> best choice if it comes to running Erlang code?
> Lev Walkin
> erlang-questions mailing list
More information about the erlang-questions