[erlang-questions] Erlang Cost Model

Anders Nygren <>
Wed Sep 16 22:57:52 CEST 2015


I have done a lot of measurements in my life and initially it was "easy",
no caches, virtual memory, or frequency scaling. But even then You did a
measurement of X and got a result. Then You thought a little about it and
realized that You had actually measured Y. So You modified the test and ran
it again and got a new result, that You soon realized was for Z. Repeat
 forever.

I gave up on these activities a few years ago when I found that the
response times decreased with increased load. Because of frequency scaling.

On Wed, Sep 16, 2015 at 3:27 PM, Pierre Fenoll <>
wrote:

> 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
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150916/8ef1c095/attachment.html>


More information about the erlang-questions mailing list