#stack #buffer #buf #reader-writer

已删除 stack-buffer

堆栈缓冲区提供了对 BufReader 和 BufWriter 的替代方案,这些缓冲区是在堆栈上而不是在堆上分配的

0.3.0 2022年4月3日
0.2.0 2022年1月6日
0.1.0 2022年1月4日

#15 in #buf

Apache-2.0

39KB
523

StackBuf{Reader,Writer}

堆栈缓冲区提供了对 BufReader 和 BufWriter 的替代方案,这些缓冲区是在堆栈上而不是在堆上分配的。其实现主要复制自标准库,仅在需要使用堆栈时才进行修改。

用法

需要夜间编译器。

将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
stack-buffer = "0.1.0"

Buf{Reader,Writer}::{new,with_capacity} 替换为 StackBuf{Reader,Writer}::<_, N>::new 其中 N 是在堆栈上分配的大小。

性能

StackBufReader 总是优于 BufReader,通常高出约 6%。此外,最佳堆栈大小似乎为读取小于 1 MB 的数据时为 4096,而对于 1 MB 以上的读取为 8192

StackBufWriter 似乎没有比 BufWriter 提供显著的性能优势,有时甚至更差,但这可能是由于基准测试的不准确性。似乎 8192 是最佳的堆栈大小。

无运行时依赖项