Jay Pipes <[email protected]> writes:

> Paul McCullagh wrote:
>> As has been mentioned elsewhere the most important thing is that Drizzle
>> has automated regression tests in place.
>
> Yep, that plus we are discussing these regressions in a public forum
> where many excellent folks like yourself can comment on them. :)  The
> suggestions and input we get from everyone is invaluable, and we follow
> up on all suggestions.

One thing I am curious about: what is the smallest regression that you can
discover without it being lost in noise? I think this one was like 20% or so,
but do you think you could catch one of 5%? 1%?

I strongly agree with letting performance regression testing control
optimizations. I have seen _so_ many code decisions based on "assumed"
performance benefits over clear code. With modern CPUs it's just plain wrong
90% of the time. Even "every instruction counts" is not right, as typical code
I see utilise only 40-50% of instruction bandwidth on something like a Core 2
(hint: latency and dependency chains matter, not instruction counts).

What I have in mind is something like Buildbot/Pushbuild, but for
performance. So there would be performance regression tests for each major
piece of code, and any push that caused a slowdown would be flagged by a red
in the status display.

The really hard part of this is the noise. Usually there is quite a bit of
random noise in benchmarks, so I was looking at ways to reduce that noise to
make automation feasible.

I worked a bit with the perfmon2 library, and got some really good
results. For micro-benchmarks of smaller pieces of code, I was able to measure
with about 1 in 10000 accuracy, which is really quite good, and would enable
to detect automatically something down to like a 0.1% slowdown or so perhaps.

However, this requires having a test suite of micro-benchmarks, I do not think
it is possible to get something like sysbench down to that accuracy.

Anyway, then I got involved in MariaDB and had to put the project away for a
while (I hope to return to it eventually). But I was just curious about your
thoughts and experience with handling benchmark measurement noise.

 - Kristian.

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to