使用自定义分配器使 std::list 缓存友好?
Using custom allocator to make std::list cache friendly?
在我的日常工作中,团队的高级成员总是告诉我列表对缓存不友好,所以我应该 vector
。我理解 list
不是连续的,因此内存分配分散在整个内存中。
然而,很多时候我确实需要 list
(或 map
)的功能。所以我想知道我是否可以编写自己的分配器,它是下面的 vector
。每次我 push_back
时,我自己的分配器都会从每个分配的 vector
中分配一个新项目。
当我旅行 list
/map
时,缓存位置被保留。
你们觉得这有意义吗?
在我的日常工作中,团队的高级成员总是告诉我列表对缓存不友好,所以我应该 vector
。我理解 list
不是连续的,因此内存分配分散在整个内存中。
然而,很多时候我确实需要 list
(或 map
)的功能。所以我想知道我是否可以编写自己的分配器,它是下面的 vector
。每次我 push_back
时,我自己的分配器都会从每个分配的 vector
中分配一个新项目。
当我旅行 list
/map
时,缓存位置被保留。
你们觉得这有意义吗?