gpt4 book ai didi

c++ - boost::lockfree::spsc_queue 分配器最大大小?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:19 25 4
gpt4 key购买 nike

我需要缓冲一堆传入的 10GigE 数据,以便稍后将其写入磁盘。按顺序执行此操作是一个问题,因为如果我不能足够快地维护它,我正在读取的设备将会溢出。

在寻找解决方案时,我偶然发现了 boost::lockfree::spsc_queue。特别是,我喜欢这样一个事实,即我可以为队列预先分配内存,因为在 push() 期间调整大小可能会导致速度减慢,从而导致溢出。

但是,鉴于数据速率,我需要一个大缓冲区。因此,我想知道我可以为队列分配的最大大小是多少(以项目数和字节数计)。我计划部署的系统有 24GB 可用空间,所以我希望分配多达 16GB 以确保队列永远不会填满。最后要注意的是,代码将驻留在 Linux 机器(x86-64 架构)上,因此如果需要任何内核参数来更改此大小,那也很好知道。

在此先感谢您的帮助。

最佳答案

在对队列进行试验后,我能够(动态地)分配一个巨大的队列。似乎没有限制。

但是静态地,你是有限的,当我创建大的、静态分配的缓冲区时,我收到了错误。不过,我没有足够多地使用它来找到确切的值。

关于c++ - boost::lockfree::spsc_queue 分配器最大大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26892232/

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