| 0.3.0 |
|
|---|---|
| 0.2.0 |
|
| 0.1.0 |
|
#15 in #buf
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 是最佳的堆栈大小。