Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否有一个C++;防止STL容器被交换的分配器?_C++_Stl_Memory Management_Posix_Allocator - Fatal编程技术网

C++ 是否有一个C++;防止STL容器被交换的分配器?

C++ 是否有一个C++;防止STL容器被交换的分配器?,c++,stl,memory-management,posix,allocator,C++,Stl,Memory Management,Posix,Allocator,有没有人见过一个分配器调用它来阻止STL容器的内容被交换到磁盘上 编写这样一个分配器可能只有一个棘手的部分,即通过将要锁定的分配聚集在一起来最小化锁定页面的数量。因此,人们可能应该从修改某个共享内存分配器开始?如果我想实现这一点(这很难想象,因为我发现很难相信它是解决任何问题的正确解决方案:^),我会尝试使用(从池中提供标准库兼容分配器)然后-我忘记了细节;我想它会涉及到RequestedSizetemplate参数和-有一种方法可以让它位于一个池的顶部,该池通过您选择的机制请求更大的内存块,在

有没有人见过一个分配器调用它来阻止STL容器的内容被交换到磁盘上


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

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

+1表示“我很难相信它是解决任何问题的正确方法”@ BillyONeal:锁定页面可以很好地用于安全信息,也可以对需要立即响应用户的程序很好,尽管在这种情况下McLoLead是更好的选择。是的,如果在C++中从头开始编写密码库/工具,则需要这样做。是的,很明显,只要有可能,您就应该使用已建立的库进行加密。@ZanLynx:可能用于加密情况,但不用于响应情况。你的程序中谁会说“我是最重要的,听我说!让其他程序运行得慢一些,这样我看起来会更好”——如果你的程序被分页,这意味着用户正在使用其他程序,那么这些程序的页面就比你的页面更重要。如果你这样做是为了响应,那么你就是在改变全局状态来解决局部问题。工业数据收集应用程序可能会出现这样的情况:mlockall适用于一个小恶魔,但实时的东西是多余的,不是吗?