3个版本

0.1.2 2019年5月17日
0.1.1 2019年5月17日
0.1.0 2019年5月17日

#1160 in 异步

MPL-2.0 许可证

25KB
419

sched-clock: 任务调度的计时器

On crates.io On docs.rs Requires rustc 1.34+

这是什么?

所以,您想要进行任务调度,在这个背景下,您需要推理如下句子:

  • 这项任务必须在16.7ms内完成
  • 这项任务大约需要5ms
  • 我通常需要多长时间来处理任务?
  • 我到目前为止已经花费了多长时间处理这项任务?

您不需要推理200年前发生的历史事件。您也不需要提前200年进行规划,因为您和我一样确信您的软件(以及我们知道的其余计算)到那时将会过时。

您通常不需要将时间戳与UTC参考(如Unix纪元)相关联,并且您知道这些“全球”参考时钟实际上并不真正全球,充满了混乱的计量学边缘情况,总的来说最好避免,除非真的需要(例如,用于直接的人机交互)。

另一方面,您关心精确的时间(至少微秒,纳秒会更好)并保持数据结构小巧,以及时间相关的测量/操作快速。

如果上述所有内容听起来都正确,这个库可能就是您想要的!

功能

  • 64位、有符号、单调、基于纳秒的时间戳和持续时间
  • 试图处理所有那些使时钟实现变得有趣的边缘情况
    • 跨CPU核心的线程迁移
    • CPU频率变化
    • 挂起和恢复
    • 用户调整本地时间
    • NTP加速和减速系统时钟
    • 硬件时钟中的错误
  • 与Rust stdlib一样可移植,但可能具有针对特定系统的优化路径

依赖项

~43KB