内存泄漏 - 物理或虚拟

时间:2012-05-31 18:50:33

标签: memory-leaks

当我们说存在内存泄漏时,这是否意味着虚拟内存或物理内存中的泄漏?我觉得它实际上是VM中的泄漏,因为只有虚拟内存空间被浪费,因为无论如何通过交换未使用的页面来保存物理内存。但它仍然浪费VM空间。请澄清。

是否可以使用linux top命令并告诉可能存在内存泄漏?

1 个答案:

答案 0 :(得分:0)

虚拟内存本质上(在实际意义上)与物理内存相同,只是扩展到系统的磁盘驱动器以进行缓存(请参阅分页文件)。由于它位于磁盘上,因此访问速度要慢得多,因为在读取数据之前需要将数据从磁盘“交换”到物理内存中。如果程序有内存泄漏,它将填满(或至少达到程序可用内存的限制。)

您可以使用top来检查消耗大量内存的进程。如果内存量在异常速率的程序中继续增长,那么这可能是内存泄漏的指示。使用像valgrind这样的程序可以更容易识别:http://en.wikipedia.org/wiki/Valgrind