#buffer #generic #algorithm #data-structures #no-alloc #array

no-std double-buffer

简单的双缓冲泛型实现

5 个版本 (1 个稳定版)

1.0.0 2023年11月16日
0.3.1 2023年10月4日
0.3.0 2023年9月27日
0.2.0 2023年9月27日
0.1.0 2023年9月26日

#1780 in 算法

每月 36 次下载

Unlicense

14KB
248

泛型且简单的双缓冲

此库仅提供 DoubleBuffer<T>,用于实现双缓冲模式。

DoubleBuffer<T> 不仅限于字节数组或类似的缓冲区,它可以与任何需要在读取当前状态的同时修改的类型一起使用,所有更改都看起来像是一个原子操作。

交换基准测试

以下是在 i7 第10代处理器和 32GB RAM 的环境下,对于 vec![0u8; 16777216] 缓冲区的测试结果:

  1. DoubleBuffer::swap() - 1.6655 ns 1.6814 ns 1.6964 ns
  2. DoubleBuffer::swap_with_default() - 1.7547 ns 1.8009 ns 1.8262 ns
  3. DoubleBuffer::swap_with_clone() - 4.4526 ms 4.5241 ms 4.5989 ms

无运行时依赖