2个版本
0.1.1 | 2022年9月6日 |
---|---|
0.1.0 | 2022年9月5日 |
#977 in 文件系统
34KB
684 行
磁盘队列
基于磁盘的FIFO队列。
用法
use disk_queue::DiskQueue;
let mut queue = DiskQueue::open("test.db");
queue.enqueue("https://sahamee.com".as_bytes().to_vec());
let item = queue.dequeue().unwrap();
let s = std::str::from_utf8(&item).unwrap();
println!("{}", s); // print "https://sahamee.com"
基准测试
设置
基准测试在以下机器上进行
- 处理器:i3-6100 @ 3.7GHz (核心总数:2,线程总数:4,64KB L1缓存,512KB L2缓存,3MB L3缓存)
- RAM:24GB DDR4 @ 2133MHz
- 磁盘:三星SSD 850 Evo
我们使用长度为6的固定大小记录进行写入/读取(入队/出队)。
写入吞吐量
测量的写入吞吐量约为9.7M次/秒。这大约是58 MB/秒。
读取吞吐量
测量的读取吞吐量约为10.0次/秒。这大约是60 MB/秒。
限制
队列中存储的项目大小不能大于4089字节。这是因为页面大小设置为4096字节(4KB)。如果您需要存储大于4089字节的项目,请考虑分叉此存储库并更改页面大小。
尽管如此,随着项目大小的增加(> 512字节),性能会下降,因为需要频繁执行文件复制。
依赖项
~51–260KB