3个不稳定版本
0.1.1 | 2021年3月18日 |
---|---|
0.1.0 | 2021年3月10日 |
0.0.0 | 2021年3月3日 |
#242 在 操作系统 中
6,679 每月下载量
在 3 个crate中使用(通过 glean-core)
12KB
77 行
zeitstempel
zeitstempel是德语中的“时间戳”。
时间很难。正确的时间几乎不可能。
这个crate的唯一目的是:给我一个来自单调时钟源的整数时间戳,包括主机挂起/休眠的时间,并让我能够将其与其他时间戳进行比较。
比较来自该时钟源的时间戳是开发者的责任。操作系统重新启动后,时间戳不可比较。
为什么不使用 std::time::Instant
?
std::time::Instant
满足我们的某些要求
- 它是单调的,有保证(某种程度上)。
- 它可以与其他时间段进行比较。
然而
- 它不能被序列化。
- 不能保证所使用的时钟源在所有操作系统中都包含挂起/休眠时间。
示例
use std::{thread, time::Duration};
let start = zeitstempel::now();
thread::sleep(Duration::from_millis(2));
let diff = Duration::from_nanos(zeitstempel::now() - start);
assert!(diff >= Duration::from_millis(2));
支持的操作系统
我们支持以下操作系统
- Windows*
- macOS
- Linux
- Android
- iOS
对于其他操作系统,将回退到 std::time::Instant
,并与进程全局固定参考点进行比较。我们不保证测量时间包括系统在睡眠或休眠中花费的时间。
* 要使用原生Windows 10功能,请启用 win10plus
功能。否则将使用回退。
许可证
MPL 2.0。请参阅 LICENSE。
依赖关系
~62KB