Memory 内存泄漏是否总是导致内存消耗高?

Memory 内存泄漏是否总是导致内存消耗高?,memory,memory-leaks,memory-leak-detector,Memory,Memory Leaks,Memory Leak Detector,我的客户正在使用RHEL,他们遇到了一个问题,在我看来似乎是内存泄漏 但我的客户告诉我有大量的内存可用,而且消耗是合理的 所以我的问题是,在内存泄漏的情况下,是否不可避免地面临内存消耗问题?或者,在某些情况下,内存泄漏可能会在不消耗内存的情况下导致许多其他问题?内存泄漏是我们作为开发人员绝对不希望看到的,应该在出现时修复 然而,内存泄漏在实践中并不一定是一个问题。除非操作系统内核本身存在bug或内存泄漏,否则在某些bug软件中发生的所有泄漏内存将在程序终止时自动释放。因此,内存泄漏的严重程度实际

我的客户正在使用RHEL,他们遇到了一个问题,在我看来似乎是内存泄漏

但我的客户告诉我有大量的内存可用,而且消耗是合理的


所以我的问题是,在内存泄漏的情况下,是否不可避免地面临内存消耗问题?或者,在某些情况下,内存泄漏可能会在不消耗内存的情况下导致许多其他问题?

内存泄漏是我们作为开发人员绝对不希望看到的,应该在出现时修复

然而,内存泄漏在实践中并不一定是一个问题。除非操作系统内核本身存在bug或内存泄漏,否则在某些bug软件中发生的所有泄漏内存将在程序终止时自动释放。因此,内存泄漏的严重程度实际上取决于实际数字:

  • 平均内存泄漏率是多少,以字节/秒为单位
  • 预计的程序生命周期是多少,以秒为单位
  • 系统上有多少可用内存
例如,一个每秒泄漏1KB的小实用程序在32GB的计算机上仅在1秒内运行,除非您对其进行分析,否则它将完全不被注意。但是,如果这个实用程序是生产服务器上的永久守护程序,那么它就会成为一个问题:分配的内存量将每天增加86 MB,并且在正常运行一年后,守护程序将泄漏31.5 GB,与系统内存量相同

但即使在后一种情况下,系统也可能会继续平稳运行,因为所有泄漏的内存可能会被交换到磁盘上,因为当指向它的指针丢失时,泄漏的内存将无法再访问

一个没有任何内存泄漏的编写良好的软件可以很好地为其需要分配千兆字节的内存。这比一个初学者编写的完全幼稚的程序要高得多的内存消耗,它完全泄漏了它的几千字节


所以我的结论是,这要视情况而定。大多数情况下,用户程序中的内存泄漏都不是问题,当然应该避免。在操作系统内核和守护程序软件中,它们通常是至关重要的。

请您澄清。我看起来像这样,有点相关的背景信息。