Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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++ Linux中的内存_C++_Linux_Memory_Allocation - Fatal编程技术网

C++ Linux中的内存

C++ Linux中的内存,c++,linux,memory,allocation,C++,Linux,Memory,Allocation,我的程序将数据从文件加载到结构中 std::tr1::unordered_map< Key, Details*> std::tr1::无序地图 及 std::tr1::无序\u映射 Key:=std::string | int | long 详细信息:结构{Fields}(sizeof>=40字节) 我的程序周期性地从文件中读取新数据,然后回收旧结构。(大量新建/删除操作) 在windows中:重新加载数据~200mb后的内存使用情况 CentOS中的相同文件:每次重新加载后

我的程序将数据从文件加载到结构中

std::tr1::unordered_map< Key, Details*> 
std::tr1::无序地图

std::tr1::无序\u映射
Key:=std::string | int | long
详细信息:结构{Fields}(sizeof>=40字节)
我的程序周期性地从文件中读取新数据,然后回收旧结构。(大量新建/删除操作)

在windows中:重新加载数据~200mb后的内存使用情况

CentOS中的相同文件:每次重新加载后的总内存使用量增加到1000mb(内存使用量:200->400->600->800->1000->1000->1000->1000)

vld和valngrind未检测到泄漏


如何在Linux中解决内存问题?

这不是问题。Linux将您先前读取的文件保存在其缓存中,这样,如果您需要再次读取它们,就不需要访问HDD

该内存不会丢失,只要任何进程需要更多内存,它就会被释放


有关更多详细信息,请参阅superuser.com上的主题和类似主题。

。调用malloc_trim()后内存返回操作系统
std::tr1::unordered_map< KeyOuter, std::tr1::unordered_map<KeyInner, Details*>* >
Key := std::string | int | long long
Details : struct { Fields } ( sizeof >=40 bytes )