[erlang-questions] Erlang Cost Model

Joe Armstrong <>
Wed Sep 16 22:24:06 CEST 2015


On Wed, Sep 16, 2015 at 9:14 PM, Stu Bailey <> wrote:
> Maybe the Erlang community in collaboration with the larger massive
> concurrency community should to come up with (or has and I don't know about
> them) some standard concurrency benchmarks? Such an effort may be somewhat
> (maybe only slightly) analogous to the various transaction processing
> benchmarks that the relational database community developed.
>

Hi Stu, ...

Again I'd not read too much into the results - Akka message passing
will outperform Erlang (we know this) but they (Erlang and Akka) are
not doing the same thing.

Erlang code is designed for 'on-the-fly' upgrading so all exported
function calls go through an indirect pointer, this slows everything
down, but has implications for continuos operation.

Java code can be turned for message passing so that it is far faster
than Erlang - *but* a single error can crash the entire system.

So sure we can measure what at first sight appears to be "the same  thing"
(like message passing times) - but which has entirely different behaviour.

Many of the things which I think are important in designing a system
like "fault tolerance" "scalability" etc. are difficult to measure. How
do we measure "fault tolerance" for example? Can we say this system
is twice as fault-tolerant as this other system?

So yes - we can measure things like message passing times and so on,
but they don't help us answer questions like "is it scalable" and so on.

By all means perform concurrency benchmarking - but I'd take
great care when interpreting the results. The numbers are
easy to find - but the interpretation is very difficult.

Cheers

/Joe

> Just as a starting point, here is some work specific to Scala in that
> direction:
>
> http://www.infoq.com/articles/benchmarking-jvm
>
> On Wed, Sep 16, 2015 at 12:03 PM, Theepan <> wrote:
>>
>> I have never heard of such a cost model for Erlang’s basic operations, but
>> most of the time I profiled the code to find out the cost of a code-segment,
>> using tools and functions provided by Erlang/OTP. The Erlang documents list
>> do-s and don’t-s, and from the engineering school I know good programing
>> practices. And most of the time I use common sense of how to write a good
>> piece of code. This is my story, and wrote it to give my one cent on the
>> crowd sourcing part.
>>
>>
>>
>> At an Erlang process level operations can be timed, as they directly map
>> to the operations at the underlying OS. And then you will have to add some
>> extra cost for the process management by the OTP. This extra cost is a
>> function of many variables like number of cores, configuration of
>> schedulers, yielding frequency, length of process queue, GC and so on. There
>> is no straightforward way, but through a deeper analysis they can be
>> determined.
>>
>>
>>
>>  Theepan
>>
>>
>> On Wed, Sep 16, 2015 at 8:33 PM, Eric des Courtis
>> <> wrote:
>>>
>>> What is the cost model of all operations in Erlang 18?
>>>
>>> For example Python has this cost model
>>> http://scripts.mit.edu/~6.006/fall07/wiki/index.php?title=Python_Cost_Model
>>> .
>>>
>>> I either want a link to a single source for this information or I would
>>> like to crowd source the information here now.
>>>
>>> Thanks for your cooperation.
>>>
>>> Eric des Courtis
>>>
>>> _______________________________________________
>>> erlang-questions mailing list
>>> 
>>> http://erlang.org/mailman/listinfo/erlang-questions
>>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>


More information about the erlang-questions mailing list