blob: 0ce4a11f9a895c8c655ab2b9fc209878f8899315 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
use {
fuchsia_criterion::criterion::{Bencher, Criterion},
fuchsia_zircon as zx,
};
pub fn benches(c: &mut Criterion) {
c.bench_function_over_inputs(
"channel_write_read_zeroes",
channel_write_read_zeroes,
[64, 1024, 32 * 1024, 64 * 1024].into_iter(),
);
}
fn channel_write_read_zeroes(b: &mut Bencher, message_size: &&usize) {
let message = vec![0; **message_size];
let mut handles = vec![];
let (one, two) = zx::Channel::create().unwrap();
b.iter(|| {
one.write(&message, &mut handles).unwrap();
let mut output = zx::MessageBuf::new();
two.read(&mut output).unwrap();
});
}