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? 🤷
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:
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? 🤷