49 lines
1.5 KiB
Rust
Executable File
49 lines
1.5 KiB
Rust
Executable File
use criterion::*;
|
|
|
|
use crate::benchmarks::compiled_protos::helloworld::{HelloReply, HelloRequest};
|
|
use crate::benchmarks::utils;
|
|
|
|
fn build_request(_name: String) {
|
|
let _request = tonic::Request::new(HelloRequest { name: _name });
|
|
}
|
|
|
|
fn build_response(_message: String) {
|
|
let _response = tonic::Request::new(HelloReply { message: _message });
|
|
}
|
|
|
|
pub fn bench_throughput(c: &mut Criterion) {
|
|
let mut group = c.benchmark_group("Request_Response");
|
|
|
|
let plot_config = PlotConfiguration::default().summary_scale(AxisScale::Logarithmic);
|
|
|
|
group.plot_config(plot_config);
|
|
|
|
let tiny_string = utils::generate_rnd_string(100).unwrap();
|
|
let short_string = utils::generate_rnd_string(1_000).unwrap();
|
|
let medium_string = utils::generate_rnd_string(10_000).unwrap();
|
|
let big_string = utils::generate_rnd_string(100_000).unwrap();
|
|
let huge_string = utils::generate_rnd_string(1_000_000).unwrap();
|
|
let massive_string = utils::generate_rnd_string(10_000_000).unwrap();
|
|
|
|
for size in [
|
|
tiny_string,
|
|
short_string,
|
|
medium_string,
|
|
big_string,
|
|
huge_string,
|
|
massive_string,
|
|
]
|
|
.iter()
|
|
{
|
|
group.throughput(Throughput::Bytes(size.len() as u64));
|
|
|
|
group.bench_with_input(BenchmarkId::new("request", size.len()), size, |b, i| {
|
|
b.iter(|| build_request(i.to_string()))
|
|
});
|
|
group.bench_with_input(BenchmarkId::new("response", size.len()), size, |b, i| {
|
|
b.iter(|| build_response(i.to_string()))
|
|
});
|
|
}
|
|
group.finish();
|
|
}
|