gpt4 book ai didi

c++ - spsc_queue pop - 避免 memcpy?

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:07 25 4
gpt4 key购买 nike

我这样声明 spsc_queue:

boost::lockfree::spsc_queue<fut_sess_contents,  boost::lockfree::capacity<1024>> futInfoUpdates;

我是这样处理的:

fut_sess_contents entry_fsc;
while (futInfoUpdates.pop(entry_fsc))
{
.... work
}

我假设我通过引用在此处传递了 entry_fscspsc_queue memcpy 下一个元素。它看起来并不有效,我宁愿只获取指向存储中项目的指针并直接使用存储中的项目(避免额外的 memcpy)。我能以某种方式做到这一点吗?我的存储空间足够大,处理速度也足够快,因此我确信我可以直接使用存储空间中的指针。

最佳答案

你不能。

这正是必需的,因此 SPSC 队列可以以无锁方式实现(假设容量固定)。

你不能既吃蛋糕又吃它

此外,您已经过了微观优化。

Did your profiler tell you this is your performance bottleneck? (Hint: No, it didn't).

关于c++ - spsc_queue pop - 避免 memcpy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24030222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com