应用程序关闭时是否会从 RAM 中删除?

应用程序关闭时是否会从 RAM 中删除?

我注意到,当你打开一个程序,关闭它,然后再次打开它时,第二次打开的速度似乎要快得多。

这是因为第二次它已经在 RAM 中了吗?

换句话说,我假设一旦程序关闭,它的内存空间就会被标记为未使用。如果在旧内存空间被使用之前再次打开该程序,它是否必须从磁盘重新加载整个程序?

答案1

一般来说,当应用程序关闭/结束时,它占用的存储会立即释放,如果您重新启动该应用程序,它将从磁盘重新加载到“新”存储中。

最大的例外是某些“智能手机”,有时当您“结束”某个应用程序时,它实际上并不是立即结束,而只是在一段时间内“处于后台”,假设您可能在不久的将来重新启动它。但是,如果您在一段时间内不使用该应用程序,它最终会被操作系统结束,并回收存储空间。(据我所知,这种方案不用于普通的 Microsoft 或 Apple 电脑,只用于手机。)

另一个例外,技术性更强,即即使程序已结束并释放了其存储空间,程序的磁盘映像(或至少部分)仍可能存在于磁盘“缓存”中,第二次访问可能比第一次更容易。这可能是您感觉第二次启动速度更快的原因。

不过,启动速度更快还有另一个更简单的原因。当您结束某个应用程序然后立即重新启动它时,存储中就会出现一个恰好适合您的程序的“空洞”。如果您在运行其他程序后再启动它,操作系统就必须四处寻找可用的存储空间,这通常意味着它必须“分页”RAM 中的其他数据,这是一个耗时的过程。

答案2

程序打开时,内存的使用量和未使用量不会比程序关闭时更多。内存是用过的是否包含有用的信息。它在程序运行时和程序停止运行时都包含有用的信息。

事实上,大多数操作系统根本不考虑程序是否正在运行。如果某个程序正在运行,而某个内容没有被访问,为什么要将其保留在内存中?为什么只因为当时没有正在运行的程序在使用它,就将其从内存中丢弃?

操作系统根据对数据的访问情况进行操作。当然,保存着永远无法访问的数据的内存被认为是空闲的。

相关内容