c++ - 有没有办法让空的 boost 循环缓冲区的前端在缓存中保持热?

标签 c++ boost circular-buffer boost-circularbuffer

有一个特定的循环缓冲区我希望在缓存中保持热,但是它可以在很长一段时间内不被使用。这会导致缓存未命中。

我有一个空闲循环可以负责保持位置热,但我看不到只使用公共(public)接口(interface)而不实际插入/删除项目的方法。

是否有任何操作,使用公共(public)接口(interface),当循环缓冲区为空时,将插入点保持在缓存中热?

最佳答案

您可能希望通过完全执行它并尽可能短地停止提交它的影响来定期预热您的完整快速路径

如果您可以获得指向容器前端的指针,您可以在其上使用 __builtin_prefetch 将其放入缓存。或者,pushpop 一个元素。

关于c++ - 有没有办法让空的 boost 循环缓冲区的前端在缓存中保持热?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48153613/

相关文章:

c++ - 存储在异常对象 : providing strings in exception 中的信息

C++ Lambda——字符串参数在后续函数调用中不起作用

c++ - 将 ASCII EOH 字符表示为字符串?

c++ - 在 C++ 中高效地读取一个非常大的文本文件

c++ - 具有单一生产者单一消费者的无锁循环缓冲区

Java通用循环缓冲排序

c++ - 在这种情况下如何使用动态多态性?

c++ - glTF 骨骼矩阵是在局部空间还是模型空间中指定的?

c++ - Boost:使用运算符[]访问bimap

linux - 了解 Linux 内核循环缓冲区