7 个版本
0.1.7 | 2019 年 12 月 26 日 |
---|---|
0.1.6 | 2019 年 12 月 17 日 |
#2350 在 算法
每月 36 次下载
用于 audiograph
19KB
412 行
buffer-pool
Rust 的 "向量数组",由一个连续向量支持。允许对非重叠缓冲区的可变借用。
什么是 BufferPool
BufferPool
是一个包,它允许您获取一定大小的切片,而无需为新的向量分配空间。它通过预先分配内存区域,然后在该区域内分配切片引用来实现。在音频编程等应用程序中很有用,在这些应用程序中,分配和释放数据可能很昂贵。
使用方法
创建新的 BufferPool
时,建议使用 BufferPoolBuilder
接口。虽然完全可以自己创建 BufferPool
,但如果您事先知道池的大小,这样做效率更低。
let mut pool: BufferPool<usize> = BufferPoolBuilder::new()
.with_buffer_size(1024)
.with_capacity(100)
.build();
let mut buffer = pool.get_cleared_space().unwrap();
for (index, value) in buffer.as_mut().iter_mut().enumerate() {
*value = index;
}
let sum: usize = buffer.as_ref().iter().sum();
println!("Sum {}", sum);