#measure-time #clock #tsc #nanosecond #timing #replace #rdtsc

fastant

基于时间戳计数器(TSC)的高性能、高精度时间测量的std::time::Instant的替代品。

2个版本

0.1.9 2024年8月12日
0.1.8 2024年8月12日

159性能分析

Download history 207/week @ 2024-08-11

每月207 次下载

MIT 许可证

28KB
405

Fastant

std::time::Instant的替代品,利用时间戳计数器(TSC)进行高性能和高精度的时间测量。

Actions Status Documentation Crates.io LICENSE

用法

[dependencies]
fastant = "0.1"
fn main() {
    let start = fastant::Instant::now();
    let duration: std::time::Duration = start.elapsed();
}

动机

此库被高性能跟踪库fastrace使用。主要目的是在x86处理器上使用时间戳计数器(TSC)以高速测量时间,同时尽量减少精度损失。

平台支持

目前,只有Linux上的x86x86_64使用时间戳计数器(TSC)作为后盾。在其他平台上,Fastant将回退到std::time。如果TSC不稳定,它也会回退到std::time

如果在回退时速度比精度更重要,您可以使用fallback-coarse功能来使用粗略时间。

[dependencies]
fastant = { version = "0.1", features = ["fallback-coarse"] }

依赖关系

~0.3–1MB
~23K SLoC