Monday, March 09 2009 @ 00:00 +0100
There has always been a lot of wiggling of SBCL boinkmarks results.
It's easy to chalk this up to system load, but the same can be
observed running the cl-bench benchmarks under more ideal
circumstances. Part of the reason is the insufficient number of
iterations of some tests: measurement accuracy is really bad when the
run time is below 0.2s and it is abysmal when there is other activity
on the system which is easy to tell even in retrospect by comparing
the real and user time columns.
But that's not the end of the story, take for instance
FPRINT/PRETTY: it takes more than two seconds but often experiences
changes up to 7% caused by seemingly unrelated changes. People have
fingered alignment as a likely cause.
Recently this issue has become more pressing as I've been trying to
reduce the overhead of x86's pseudo atomic. Unfortunately, the effect
is smallish which makes measurement difficult so I tried aligning
loops on 16 byte boundaries. This being on x86, that meant aligning
code similarly first (it's 8 byte aligned currently).