文件名称:concurrent_queue:在Rust中进行中的并发队列工作
文件大小:9KB
文件格式:ZIP
更新时间:2024-05-22 17:30:33
Rust
非阻塞并发队列 当前正在泄漏内存。 请不要实际使用它。 (解决泄漏问题应该是直接的,但没有优先考虑) 基于Adam Morrison和Yehuda Afek的论文的 。 由于我同时使用两个asm!仅在夜间运行asm! 和repr(simd) 。 x86_64中的原子图元需要前者,而结构的16字节对齐则需要后者,而使用CMPXCHG16B则需要CMPXCHG16B 。 要运行测试: cargo test 表现 最初的性能数字很有希望。 在我的4核笔记本电脑上,从两个线程中的每个线程发送10,000,000个数字以供另一个线程使用需要1.1秒,而使用mpsc::channel进行相同的操作则需要2.4秒。 使用4个生产者线程和1个使用者线程在并发通道上使用2.0秒,在mpsc::channel使用4.9秒。 因此,速度似乎提高了约2倍。 请参阅库以获取测试代码。 去做 不要泄漏L
【文件预览】:
concurrent_queue-master
----.gitignore(7B)
----src()
--------node.rs(3KB)
--------atomics()
--------crq.rs(8KB)
--------flag_and_u63.rs(1KB)
--------lcrq.rs(5KB)
--------lib.rs(202B)
----.travis.yml(35B)
----Cargo.lock(57B)
----Cargo.toml(103B)
----README.md(2KB)