为什么进程终止后无法干净地收集内存?

为什么进程终止后无法干净地收集内存?

电脑运行时间长了,总是会变慢,重启一般会变快,但是这是怎么回事呢?

最初我认为这可能与内存使用有关。但最近我了解了虚拟内存的概念。我认为如果我关闭所有不必要的进程,这会导致内核破坏它们的页表,从而释放/释放它们对(至少是虚拟)内存的使用,系统应该会像刚启动一样清晰。

但实际上这不起作用。我哪里错了?如果需要,请假设 Linux 环境。

答案1

这个问题的前提是不正确的。

Linux、Windows 和 OSX 都会跟踪并正确清理进程终止时使用的分配的内存、打开的文件句柄、打开的套接字和其他系统资源。

驱动程序和内核本身仍然可能泄漏内存,但过去 10 年我遇到的唯一实际/明显的内存泄漏是 Windows 上的 Creative SoundBlaster 驱动程序,甚至可以通过重新启动 Windows 音频服务轻松修复。

相关内容