5个稳定版本
2.0.1 | 2020年6月9日 |
---|---|
2.0.0 | 2017年7月30日 |
1.1.0 | 2017年3月16日 |
1.0.1 | 2017年3月16日 |
在 性能分析 中排名第 200
每月下载量 74 次
在 task-executor 中使用
18KB
276 行
update_rate
一个用于每秒帧数指标、测量平均值等的高效、低开销的通用更新率计数器。
use update_rate::{RateCounter, RollingRateCounter};
let mut c = RollingRateCounter::new(10);
loop {
c.update();
mycrate.work(); // Perform the slow operation
println!("Updating at {}", c);
}
lib.rs
:
此crate提供了一个用于计数更新的实用工具,例如帧率。
实现 RateCounter
特性的类型有一个名为 .update()
的方法,该方法应该在您的系统更新时调用(例如,每帧、每物理更新等)。
RateCounterImmut
特性添加了一个不可变的更新方法,该方法消耗更新率计数器并返回一个新的更新率计数器。
这也可以通过阴影和 update_immut()
方法以不可变方式完成。
示例
要记住的一个重要事情是在您周期的开始调用您计数器的 update()
(或 update_immut()
)。
use update_rate::{RateCounter, DiscreteRateCounter};
// Create a new DiscreteRateCounter with a sample rate of 10 updates
let mut c = DiscreteRateCounter::new(10);
for _ in 1..11 {
c.update();
// Rate should be 100 Hz with 10 ms/update
std::thread::sleep(std::time::Duration::from_millis(10));
}
let difference = 100.0 - c.rate();
println!("Rate was {}", c.rate());
assert!(difference < 10.0, "Counter rate should be closer to actual rate.");