假设我有以下 Rust 代码:
use indicatif::ProgressBar;
fn main() {
let limit = 100_000_000;
let pb = ProgressBar::new(limit);
for i in 0..limit {
pb.inc(1);
}
pb.finish();
}
执行这段代码需要几十秒。
同样,当我想显示大量循环的进度条并且每个循环花费的时间很短时,似乎 indicatif 会在每次循环时更新写在终端上的进度条,并且开销变得很大。
有没有办法减少这种开销?比如每50毫秒更新一次进度条?
(我知道我可以使用
std::time::{Duration, Instant}
来做到这一点,但我想知道更简单且可读的解决方案(如果存在)。)