oneshot icon indicating copy to clipboard operation
oneshot copied to clipboard

Can Criterion measure things after doing a per-iteration setup?

Open faern opened this issue 5 years ago • 0 comments

Currently we have one benchmark to measure the time it takes to create a channel and another one to measure how long it takes to create a channel plus send a message on it. Because the channel is consumed by the send we need a new channel for each iteration. But does Criterion allow doing a per-iteration setup and then start timing? Something like:

b.iter(|| {
    let (sender, _receiver) = oneshot::channel();
    // Start measure time here!
    sender.send(black_box(value_fn())).unwrap()
});

If not, does it allow pairing one benchmark with another and say that the result of one should be subtracted from the other before presenting it? 🤷

faern avatar May 05 '20 11:05 faern