This crate can be used to execute something and measure the execution time. It does not output anything to screens and filesystems.
```rust extern crate benchmarking;
const VEC_LENGTH: usize = 100;
benchmarking::warm_up();
let benchresult = benchmarking::measurefunction(|measurer| {
let mut vec: Vec
unsafe {
vec.set_len(VEC_LENGTH);
}
for i in 0..VEC_LENGTH {
measurer.measure(|| {
vec[i]
});
}
vec
}).unwrap();
println!("Reading a number from a vec takes {:?}!", bench_result.elapsed()); ```
```rust extern crate benchmarking;
const VEC_LENGTH: usize = 100;
benchmarking::warm_up();
let benchresult = benchmarking::measurefunction(|measurer| {
let mut vec: Vec
measurer.measure(|| {
for i in 0..VEC_LENGTH {
vec.push(i);
}
});
vec
}).unwrap();
println!("Filling 0 to 99 into a vec takes {:?}!", bench_result.elapsed()); ```
```rust extern crate benchmarking;
const VEC_LENGTH: usize = 100;
benchmarking::warm_up();
let benchresult = benchmarking::measurefunction(|measurer| {
let mut vec: Vec
for loop_seq in 0..VEC_LENGTH {
measurer.measure(|| {
vec.push(loop_seq);
});
}
vec
}).unwrap();
println!("Pushing a number into a vec takes {:?}!", bench_result.elapsed()); ```
```rust extern crate benchmarking;
const VEC_LENGTH: usize = 100;
benchmarking::warm_up();
let benchresult = benchmarking::measurefunctionn(2, |measurers| {
let mut vec: Vec
for i in 0..VEC_LENGTH {
measurers[1].measure(|| {
vec.push(i);
});
}
for i in 0..VEC_LENGTH {
measurers[0].measure(|| {
vec[i]
});
}
vec
}).unwrap();
println!("Reading a number from a vec takes {:?}!", benchresult[0].elapsed()); println!("Pushing a number into a vec takes {:?}!", benchresult[1].elapsed()); ```
warm_up
and warm_up_with_duration
functions of the benchmarking
crate runs on one thread. To warm up all CPUs, you can use the warm_up_multi_thread
and warm_up_multi_thread_with_duration
functions instead.measure_function
and measure_function_with_times
functions of the benchmarking
crate can execute a closure for N times. To execute it repeatly for a while instead, you can use the bench_function
and bench_function_with_duration
functions.multi_thread_bench_function
and multi_thread_bench_function_with_duration
functions of the benchmarking
crate.https://crates.io/crates/benchmarking
https://docs.rs/benchmarking