有没有人看到调用mlock(2)的分配器阻止STL容器的内容被交换到磁盘?
编写这样一个分配器只有一个棘手的部分,即通过聚类分配为mlocked来最小化冻结页数。首先,应该从修改一些共享内存分配器开始?
答案 0 :(得分:4)
如果我想实现这个(很难想象,因为我觉得很难相信它是解决任何问题的正确方法:^),我会尝试通过使用a boost::pool_allocator
(从池中提供与标准库兼容的分配器)然后 - 我忘记了细节;认为它会将RequestedSize
模板参数与singleton_pool
和user_allocator
联系起来? - 有一些方法可以让你坐在游泳池的顶部,通过你所选择的机制请求更大的内存块,在你的情况下,这将是分配的mocked页面。