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
是最佳的堆栈大小。