1

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

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

4

1 回答 1

0

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

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

于 2012-05-31T18:53:16.647 回答