-3

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

std::tr1::unordered_map< Key, Details*> 

std::tr1::unordered_map< KeyOuter, std::tr1::unordered_map<KeyInner, Details*>* >
Key := std::string | int | long long
Details : struct { Fields } ( sizeof >=40 bytes )

我的程序定期从文件中读取新数据,然后回收旧结构。(很多新建/删除操作)

在 Windows 中:重新加载数据后的内存使用量约为 200mb。

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

使用 vld 和 valngrind 未检测到泄漏。

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

4

1 回答 1

2

不是问题。Linux 将您之前读取的文件保存在其缓存中,因此如果您需要再次读取它们,则不需要 HDD 访问。

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

有关详细信息,请参阅http://www.linuxatemyram.com/和 superuser.com 上的类似主题。

于 2013-09-24T13:04:02.790 回答