【发布时间】:2011-10-01 15:46:16
【问题描述】:
有没有人见过调用mlock(2) 以防止STL 容器的内容被交换到磁盘的分配器?
编写这样的分配器只有一个棘手的部分,即通过对要锁定的分配进行聚类来最小化锁定页面的数量。因此,可能应该从修改一些共享内存分配器开始?
【问题讨论】:
标签: c++ stl memory-management posix allocator
有没有人见过调用mlock(2) 以防止STL 容器的内容被交换到磁盘的分配器?
编写这样的分配器只有一个棘手的部分,即通过对要锁定的分配进行聚类来最小化锁定页面的数量。因此,可能应该从修改一些共享内存分配器开始?
【问题讨论】:
标签: c++ stl memory-management posix allocator
如果我想实现这个(这很难想象,因为我很难相信这是解决任何问题的正确方法:^),我会尝试使用一个boost::pool_allocator(它从一个池中提供一个标准库兼容的分配器)然后 - 我忘记了细节;认为它会涉及到 singleton_pool 和 user_allocator 的 RequestedSize 模板参数? - 有一些方法可以让它位于一个池的顶部,该池通过您选择的机制请求更大的内存块,在您的情况下是分配 mlocked 页面。
【讨论】: