bench_scroll_rss 以 sample_interval = 100_000 步进读取行,但 extra["lines_read"] 记录为 max_lines.min(total),不是实际读取次数。
bench_scroll_rss
sample_interval = 100_000
extra["lines_read"]
max_lines.min(total)
quick 模式下可能只读取 1 行,却报告 100000 行;非 quick 模式也会报告 total 而非采样次数,内存 benchmark 的额外指标误导。
crates/bench/src/suites/memory.rs:101
crates/bench/src/suites/memory.rs:127
把 lines_read 改为实际读取次数,例如 rss_samples.len() 或单独维护计数器。
lines_read
rss_samples.len()
Commit: e6e0e2c
e6e0e2c
crates/bench/src/suites/memory.rs
upper = max_lines.min(total)
get_line(i).is_some()
No dependencies set.
The note is not visible to the blocked user.
问题
bench_scroll_rss以sample_interval = 100_000步进读取行,但extra["lines_read"]记录为max_lines.min(total),不是实际读取次数。影响
quick 模式下可能只读取 1 行,却报告 100000 行;非 quick 模式也会报告 total 而非采样次数,内存 benchmark 的额外指标误导。
位置
crates/bench/src/suites/memory.rs:101crates/bench/src/suites/memory.rs:127建议
把
lines_read改为实际读取次数,例如rss_samples.len()或单独维护计数器。修复方案
Commit:
e6e0e2c改动内容 (
crates/bench/src/suites/memory.rs)upper = max_lines.min(total)作为循环上界,正确处理空文件边界lines_read计数器,仅在get_line(i).is_some()时递增,语义精确为"成功读取行数"extra["lines_read"]从max_lines.min(total)改为lines_read修复前后对比