我正在阅读有关虚拟内存交换的内容,它表示当应用程序空闲时可以交换内存页面。我试图谷歌这意味着什么,但除了this stackoverflow回答之外,还没有找到更详细的信息:
您的WinForms应用程序由消息循环驱动,该消息循环将消息拉出 一个队列。当该队列被清空时,消息循环进入 安静的状态,有效地睡觉,直到下一条消息出现 消息队列。这有助于节省CPU处理资源 (在循环中浪费的循环浪费需要CPU时间远离其他循环 在机器上运行的进程,所以一切都感觉更慢) 有助于降低功耗/延长笔记本电脑的电池续航时间。
当消息队列中没有消息时,应用程序是否会变为空闲状态?
答案 0 :(得分:5)
操作系统决定空闲意味着什么。通常,这意味着应用程序不会主动利用系统资源(如处理器周期,IO操作等)。
但是,这并不意味着如果应用程序不是“空闲”,则不会交换内存中的应用程序页面。可能有许多“活动”应用程序争用相同的有限物理内存,操作系统可能会被迫交换某些属于活动应用程序的页面,以便为另一个活动应用程序腾出空间。