【发布时间】:2018-01-08 15:46:18
【问题描述】:
有一个特定的循环缓冲区我希望在缓存中保持热状态,但是它可能会在很长一段时间内不使用。这会导致缓存未命中。
我有一个空闲循环,可以负责保持该位置的热度,但我看不到仅使用公共接口而不实际插入/删除项目的方法。
是否有任何动作,使用公共接口,当循环缓冲区为空时,将保持插入点在缓存中的热?
【问题讨论】:
-
您可以编写一个分配器,将 char* 指针公开到底层内存(即两个底层数组);假设数据适合单个缓存行,然后您可以执行 char* 指针的读取(这不会违反别名规则)
标签: c++ boost circular-buffer boost-circularbuffer