2个版本

0.1.1 2022年9月6日
0.1.0 2022年9月5日

#977 in 文件系统

MIT 许可证

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