#monotonic #duration #time

boot-time

Monotonic time that takes into account time a system was suspended (if the system supports this)

2 releases

0.1.2 Sep 26, 2023
0.1.1 Sep 25, 2023
0.1.0 Sep 25, 2023

#298 in Operating systems

Download history 32/week @ 2024-01-08 7/week @ 2024-01-15 55/week @ 2024-01-29 24/week @ 2024-02-19 70/week @ 2024-02-26 7/week @ 2024-03-04 15/week @ 2024-03-11 22/week @ 2024-03-18 7/week @ 2024-03-25 52/week @ 2024-04-01 29/week @ 2024-04-08 48/week @ 2024-04-15 4/week @ 2024-04-22

134 downloads per month
Used in completeio

MIT license

33KB
556 lines

Boot time

Crates.io Docs.rs License

This library reimplements std::time::Instant to use suspend-aware monotonic time if target system supports it. Otherwise is uses monotonic time or reexports std::time::Instant.


lib.rs:

Temporal quantification that takes into account the time a system spent suspended.

Note: Some systems like FreeBSD, DragonFlyBSD, NetBSD, AIX, Fuchsia, Emscripten don't support CLOCK_BOOTIME.

For compatibility CLOCK_MONOTONIC is used as a fallback.

Windows QueryPerformanceCounter includes suspended time. So for Windows and unsupported platforms std::time::Instant is just reexported.

Examples

Using Instant to calculate how long a function took to run:

use boot_time::Instant;

let now = Instant::now();

// Calling a slow function, it may take a while
slow_function();

let elapsed_time = now.elapsed();
println!("Running slow_function() took {} seconds.", elapsed_time.as_secs());

Dependencies

~46KB