[erlang-questions] Erlang Cost Model

Pierre Fenoll <>
Wed Sep 16 22:27:23 CEST 2015


On a side note I would be happy if we had a way to add a documentation clause that advertises the complexity of the documented function. 

Maybe the complexity can even be computed automatically. 

And combining cost of atomic actions could give an idea of the cost of these complexities constants. 

> On 16 Sep 2015, at 13:09, Joe Armstrong <> wrote:
> 
>> On Wed, Sep 16, 2015 at 9: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.
> 
> Right - the problem is not measuring how long the primitives take
> it is making sense of the measurements.
> 
> Even arithmetic is problematic - how long does an integer multiply take?
> - answer "it depends" - Erlang has bignums not fixnums.
> The python cost model gives a time for multiplying integers, but for
> bignums the time will depend upon the size of the  bignums and this
> depends upon the algorithm. Just looking at code, you can't see how
> large the integers are.
> 
> From what I've seen extrapolation from "programs in the small" (ie
> answering question like - "how long does an integer multiply take") to
> "programs in the large" (ie millions of processes collaborating to
> provide a service) is very hard.
> 
> Cheers
> 
> /Joe
> 
> 
> 
> 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