#interval #sleep #loops

spin_sleep_util

使用spin_sleep的实用工具

2个版本

0.1.1 2024年1月5日
0.1.0 2024年1月4日

#12 in #sleep

Download history 208/week @ 2024-03-13 311/week @ 2024-03-20 128/week @ 2024-03-27 163/week @ 2024-04-03 88/week @ 2024-04-10 147/week @ 2024-04-17 154/week @ 2024-04-24 236/week @ 2024-05-01 173/week @ 2024-05-08 199/week @ 2024-05-15 611/week @ 2024-05-22 246/week @ 2024-05-29 206/week @ 2024-06-05 408/week @ 2024-06-12 688/week @ 2024-06-19 504/week @ 2024-06-26

1,816 每月下载量
用于 8 个crate(2个直接使用)

Apache-2.0

47KB
588

spin_sleep_util crates.io Documentation

使用spin_sleep的实用工具。

示例:帧率限制器

Interval 可以通过在每个循环的开始或结束处调用 Interval::tick 来限制循环的最大帧率。

// Create an interval to tick 144 times each second
let mut interval = spin_sleep_util::interval(Duration::from_secs(1) / 144);
loop {
    compute_something(); // do loop work

    // tick: sleep using a SpinSleeper until next tick.
    // The default `Skip` missed ticke behaviour is appropriate for a frame limiter
    interval.tick();
}

lib.rs:

使用spin_sleep的实用工具。

示例:帧率限制器

Interval 可以通过在每个循环的开始或结束处调用 Interval::tick 来限制循环的最大帧率。

// Create an interval to tick 144 times each second
let mut interval = spin_sleep_util::interval(Duration::from_secs(1) / 144);
loop {
    compute_something(); // do loop work

    // tick: sleep using a SpinSleeper until next tick.
    // The default `Skip` missed ticke behaviour is appropriate for a frame limiter
    interval.tick();
}

依赖

~0–7MB
~38K SLoC