17 releases

0.1.16 May 23, 2023
0.1.15 Aug 10, 2022
0.1.14 Jan 19, 2022
0.1.12 Oct 19, 2021
0.1.8 Aug 22, 2018

#79 in Profiling

Download history 237/week @ 2023-02-11 367/week @ 2023-02-18 249/week @ 2023-02-25 255/week @ 2023-03-04 262/week @ 2023-03-11 162/week @ 2023-03-18 178/week @ 2023-03-25 62/week @ 2023-04-01 50/week @ 2023-04-08 28/week @ 2023-04-15 8/week @ 2023-04-22 78/week @ 2023-04-29 114/week @ 2023-05-06 52/week @ 2023-05-13 60/week @ 2023-05-20 50/week @ 2023-05-27

297 downloads per month
Used in 10 crates (2 directly)

ISC license

15KB
338 lines

Precision

Precision is a simple crate to perform measurements using hardware counters.

It is especially useful for performing micro-benchmarks.

API documentation

Example

extern crate precision;

let p = precision::Precision::new(precision::Config::default()).unwrap();

let start = p.now();
let stop = p.now();
let elapsed1 = stop - start;

let start = p.now();
let stop = p.now();
let elapsed2 = stop - start;

let elapsed_total = elapsed1 + elapsed2;
let elapsed_total_secs = elapsed_total.as_secs_f64(&p);
let hw_ticks = elapsed_total.ticks();

lib.rs:

Precision is a simple crate to perform measurements using hardware counters.

It is especially useful for performing micro-benchmarks.

Example

extern crate precision;

let p = precision::Precision::new(precision::Config::default()).unwrap();

let start = p.now();

let stop = p.now();
let elapsed1 = stop - start;

let start = p.now();
let stop = p.now();
let elapsed2 = stop - start;

let elapsed_total = elapsed1 + elapsed2;
let elapsed_total_secs = elapsed_total.as_secs_f64(&p);
let hw_ticks = elapsed_total.ticks();

Dependencies

~0–270KB