5

有没有人见过调用mlock(2)来防止 STL 容器的内容被交换到磁盘的分配器?

编写这样的分配器只有一个棘手的部分,即通过对要锁定的分配进行聚类来最小化锁定页面的数量。因此,可能应该从修改一些共享内存分配器开始?

4

1 回答 1

4

如果我想实现这个(这很难想象,因为我很难相信它是解决任何问题的正确方法:^),我会尝试使用一个boost::pool_allocator(它提供了一个标准库兼容的分配器一个游泳池)然后 - 我忘记了细节;认为它会涉及到和 a的RequestedSize模板参数?- 有一些方法可以让它位于一个池的顶部,该池通过您选择的机制请求更大的内存块,在您的情况下是分配 mlocked 页面。singleton_pooluser_allocator

于 2011-10-01T16:15:41.497 回答