应用程序空闲时意味着什么

时间:2015-07-17 11:28:28

标签: java c# linux windows

我正在阅读有关虚拟内存交换的内容,它表示当应用程序空闲时可以交换内存页面。我试图谷歌这意味着什么,但除了this stackoverflow回答之外,还没有找到更详细的信息:

  

您的WinForms应用程序由消息循环驱动,该消息循环将消息拉出   一个队列。当该队列被清空时,消息循环进入   安静的状态,有效地睡觉,直到下一条消息出现   消息队列。这有助于节省CPU处理资源   (在循环中浪费的循环浪费需要CPU时间远离其他循环   在机器上运行的进程,所以一切都感觉更慢)   有助于降低功耗/延长笔记本电脑的电池续航时间。

当消息队列中没有消息时,应用程序是否会变为空闲状态?

1 个答案:

答案 0 :(得分:5)

操作系统决定空闲意味着什么。通常,这意味着应用程序不会主动利用系统资源(如处理器周期,IO操作等)。

但是,这并不意味着如果应用程序不是“空闲”,则不会交换内存中的应用程序页面。可能有许多“活动”应用程序争用相同的有限物理内存,操作系统可能会被迫交换某些属于活动应用程序的页面,以便为另一个活动应用程序腾出空间。