Skip to content

Eliminate memory layout bias when measuring (with LLVM stabilizer) #334

@fasterthanlime

Description

@fasterthanlime

I'm sorry this isn't a better issue, I haven't really had time to do research on the subject and I'm quite tired at the moment - that said,

I've recently learned just how much memory layout can impact performance of programs. I recommend watching this video from 10:00 on: https://youtu.be/r-TLSBdHe1A?t=598 (the link is already timestamped)

The paper mentioned in the talk (about the effects of memory layout) can be found here: https://users.cs.northwestern.edu/~robby/courses/322-2013-spring/mytkowicz-wrong-data.pdf

Stabilizer can be found here: https://github.com/ccurtsinger/stabilizer

This might be wildly out of scope for criterion, but I was wondering if, 1) this was common knowledge and 2) if there's anything that's already done to mitigate that bias when measuring performance with criterion.rs.

This is not really an issue, more of a question - but a "fix" could be as simple as adding a bit to the documentation that warns users about this (especially since it seems criterion compares with previous runs?) and points them to tools they can use to mitigate that.

I haven't tried running criterion benchmarks through stabilizer yet, in fact I haven't tried anything at all yet, I'm just opening this before I forget, and because it's very cool (and scary - but cool).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions