Skip to content

这是一个很好的终端优化建议 #290

Description

@pstree

直接上代码 !换上之后终端更显丝滑。
// 测试场景:100万行数据,每批新增100行

// Vec方式(差)
let mut vec_history = Vec::with_capacity(1_000_000);
let start = Instant::now();
for _ in 0..10000 {
for _ in 0..100 { vec_history.push(line.clone()); }
if vec_history.len() > 1_000_000 {
let drop = vec_history.len() - 1_000_000;
vec_history.drain(0..drop); // ← 性能瓶颈
}
}
println!("Vec: {:?}", start.elapsed()); // 可能几秒钟

// VecDeque方式(好)
let mut deque_history = VecDeque::with_capacity(1_000_000);
let start = Instant::now();
for _ in 0..10000 {
for _ in 0..100 { deque_history.push_back(line.clone()); }
while deque_history.len() > 1_000_000 {
deque_history.pop_front(); // ← 高效O(1)
}
}
println!("VecDeque: {:?}", start.elapsed()); // 毫秒级

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions