已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
5天前关闭。
Improve this question的
在Rust中,使用共享内存最快的结构是什么?
作为共享内存的一个例子,假设有一个长度为N
的Vec,并且在vec (start, end): (usize, usize)
上有一个传入切片流。在每个切片中,您希望递增切片中的每个索引。
已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
5天前关闭。
Improve this question的
在Rust中,使用共享内存最快的结构是什么?
作为共享内存的一个例子,假设有一个长度为N
的Vec,并且在vec (start, end): (usize, usize)
上有一个传入切片流。在每个切片中,您希望递增切片中的每个索引。
1条答案
按热度按时间t2a7ltrp1#
如果我们假设如下:
u8
那么我个人会选择
&[AtomicU8]
或Arc<[AtomicU8]>
,在所有可能的情况下我更喜欢&[AtomicU8]
;只有当你的记忆是短暂的时候才需要Arc
。个字符
请注意,如果你真的想要 “最快的构造”,那么不要简单地相信我的话。尝试多种事物并进行基准测试。
例如,如果你的切片很大,而线程冲突很小,那么使用
Mutex<[u8]>
可能会更快。这意味着线程碰撞会慢很多,但每个切片的实际迭代会快很多。原子没有太多开销,但也不是零。