我使用的是Linux内核2.6.38,我正在运行一个进程,它分配4GB内存,我有一个4GB可用的ram,所以当我运行我的应用程序时,它会从交换空间分配0.5GB左右。但是,我的应用程序运行了很长时间,并多次访问交换空间上的数据。
(编辑)以澄清我正在做的事情:
这是这个内核版本(2.6.38)上的一个bug吗?有解决办法吗?
发布于 2017-04-17 00:28:13
没有内存泄漏。
您假设当应用程序需要比可用内存更多的内存时,会编写部分内存以进行交换。这不一定是真的。
系统可能(通常也会)编写其他完全无关的进程来交换,因为它们目前没有在使用中。
由于此交换空间不属于您的应用程序,因此在应用程序退出后它将继续使用。
这个交换空间可能会继续使用很长一段时间,因为当有空闲RAM时,Linux不会先发制人地重新加载它们。
https://stackoverflow.com/questions/43443368
复制相似问题