[erlang-questions] [ANN] Silly benchmarking

Richard Carlsson carlsson.richard@REDACTED
Tue Apr 30 22:02:22 CEST 2013


On 2013-04-30 21:42, Motiejus Jakštys wrote:
> On Tue, Apr 30, 2013 at 8:17 PM, Richard Carlsson
> <carlsson.richard@REDACTED> wrote:
>> And here's my unfinished benchmarking project:
>>
>>    https://github.com/richcarl/berk
>>
>
> This looks quite big and unusual compared to others.
>
> Can you explain what you calibrate,

I started out wanting a really stable core measurement loop, and a way 
to calibrate the system under test so that it could automatically set 
good defaults for number of iterations, and be aware of the clock 
precision and typical variance. As I went on, I started abstracting more 
and more, and some ideas (like the "berps" - bogus erlang reductions per 
second) got left as rough sketches, and there's nothing yet that 
actually saves the result of a calibration and reuses it.

The parts that are working well are the runner/1, gather/1, and stats/1 
functions, and the functions run/2, run_for/2, and calibrate/0, which 
you can study to understand how the runner and gather functions work. 
There's still some tweaking to be done - the calibration doesn't always 
converge as well as I'd like it.

> and what is the purpose of sending
> a message many times to a dead process? Does it have some well-defined
> behavior in the virtual machine?

No, it was just a way to set up a calibration loop that did something 
very cheap but that the compiler couldn't optimize away. But that part 
isn't very exciting - I'm not using it for anything yet. I just dropped 
all of the code in a single module to keep it simple at this stage.

     /Richard




More information about the erlang-questions mailing list