[−][src]Crate benchmarking
Benchmarking
This crate can be used to execute something and measure the execution time. It does not output anything to screens and filesystems.
Examples
extern crate benchmarking; const VEC_LENGTH: usize = 100; benchmarking::warm_up(); let bench_result = benchmarking::measure_function(|measurer| { let mut vec: Vec<usize> = Vec::with_capacity(VEC_LENGTH); 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());
extern crate benchmarking; const VEC_LENGTH: usize = 100; benchmarking::warm_up(); let bench_result = benchmarking::measure_function(|measurer| { let mut vec: Vec<usize> = Vec::with_capacity(VEC_LENGTH); 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());
extern crate benchmarking; const VEC_LENGTH: usize = 100; benchmarking::warm_up(); let bench_result = benchmarking::measure_function(|measurer| { let mut vec: Vec<usize> = Vec::with_capacity(VEC_LENGTH); 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());
extern crate benchmarking; const VEC_LENGTH: usize = 100; benchmarking::warm_up(); let bench_result = benchmarking::measure_function_n(2, |measurers| { let mut vec: Vec<usize> = Vec::with_capacity(VEC_LENGTH); 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 {:?}!", bench_result[0].elapsed()); println!("Pushing a number into a vec takes {:?}!", bench_result[1].elapsed());
The 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.
The 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.
To execute a closure with multiple threads to measure the throughput, you can use the multi_thread_bench_function and multi_thread_bench_function_with_duration functions of the benchmarking crate.
Structs
| MeasureResult | The result of measurement. |
| Measurer | To measure the execution time. |
Enums
| BenchmarkError |
Functions
| bench_function | Run a function for 5 seconds and measure its execution time. |
| bench_function_n | Run a function for 5 seconds and measure its execution time. |
| bench_function_n_with_duration | Run a function with a specific duration and measure its execution time. |
| bench_function_with_duration | Run a function with a specific duration and measure its execution time. |
| measure_function | Run a function 10 times and measure its execution time. |
| measure_function_n | Run a function 10 times and measure its execution time. |
| measure_function_n_with_times | Run a function with a specific times and measure its execution time. |
| measure_function_with_times | Run a function with a specific times and measure its execution time. |
| multi_thread_bench_function | Run a function with a number of threads for 5 seconds and measure its execution time. |
| multi_thread_bench_function_n | Run a function with a number of threads for 5 seconds and measure its execution time. |
| multi_thread_bench_function_n_with_duration | Run a function with a number of threads and a specific duration and measure its execution time. |
| multi_thread_bench_function_with_duration | Run a function with a number of threads and a specific duration and measure its execution time. |
| warm_up | To stimulate CPU to wake up. The running duration is |
| warm_up_multi_thread | To stimulate CPUs to wake up. |
| warm_up_multi_thread_with_duration | To stimulate CPUs to wake up. The running duration is |
| warm_up_with_duration | To stimulate CPU to wake up. |