gpt4 book ai didi

c++ - 内存池 : will they improve cache usage for structs larger than the cache line size?

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:51 24 4
gpt4 key购买 nike

据我了解,如果对象小于缓存行大小,内存池应该提高经常一起访问的对象的缓存性能 - 因为相邻对象可能会同时被提取到缓存中。

但是大于缓存行大小的对象呢?将这些数据汇集到同一内存区域有什么好处吗?

(假设分配/解除分配时间微不足道,我担心的是访问...)

谢谢!

最佳答案

使用池的一个重要原因是它们提供了一种比通用分配器更简单的分配方案。由于所有对象都具有相同的大小,因此没有碎片,您只需要维护一个空闲列表即可。对于新分配,您尝试弹出空闲列表的顶部,或者如果列表为空,则增加高水位线,完成。 (您可以在池内存本身的 O(1) 空间中实现空闲列表。)

但是,池的使用视情况而定,是否有任何好处在很大程度上取决于您的实际代码路径和分配要求。现代标准分配器已经非常适合许多短期的固定大小分配,因此您确实需要分析和检查。

关于c++ - 内存池 : will they improve cache usage for structs larger than the cache line size?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7319774/

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