【发布时间】:2009-07-20 14:17:37
【问题描述】:
我听说过一个神话,如果将作业保留为活动窗口,而不是在后台或最小化,它会更快地完成。
这有什么道理吗? CPU 是否会优先处理发生这种情况的任务?
谢谢,
【问题讨论】:
标签: performance cpu process
我听说过一个神话,如果将作业保留为活动窗口,而不是在后台或最小化,它会更快地完成。
这有什么道理吗? CPU 是否会优先处理发生这种情况的任务?
谢谢,
【问题讨论】:
标签: performance cpu process
在 Windows 上,前台应用程序获得优先级提升。这是为了帮助它保持对用户的响应,并确保当它在等待某些 I/O 事件后准备好运行时,它会在大多数其他可能等待运行的应用程序之前运行。
前景应用也有可能实现更长的时间量。
我不知道如果应用程序在前台而不是后台运行,它的完成速度会快多少 - 有很多因素会影响到这一点(尤其是 I/O)。目的是使应用程序响应更快。
这在某种程度上都是可配置的(可能仅在服务器 SKU 上):
【讨论】:
这取决于您的设置。在默认的 Windows desktop 操作系统上,这是真的。在 Windows 服务器 操作系统(如 Windows 2003)上,这是不正确的。
您可以通过进入系统属性并单击性能选项卡来更改设置。确切的布局因 Windows 版本而异,但您应该看到(或能够通过单击高级子选项卡或找到“调度程序”来查看)“工作站”和“服务器”配置之间的单选/组合选项,或选项在优先程序或后台服务之间。在这两种情况下,它们是相同的(只是语言不同——服务器/工作站语言来自 Windows 2000,而程序/服务是为更面向消费者的 XP 创建的)——它们确定调度程序是否对线程的线程给予了额外的重视最顶层的窗口,或者是否平等对待所有线程(基于线程优先级属性)。
【讨论】:
Windows 允许您赋予“前台”任务优先级优势,因此这可能不是神话。您也可以将其设置为其他方式,以赋予“服务”任务优先级优势,因此这取决于安装。
请注意,这只会影响优先级...如果没有其他任务在运行,则在这两种情况下运行不会有明显不同。只有当有另一个应用程序需要 CPU 时间时,您才会注意到差异。
【讨论】:
在 Windows 上部分正确。 Windows 将分配一个 GUI 应用程序,它的窗口在顶部的优先级略高。因此,如果有其他优先级正常或较低的任务,则该程序确实可以运行得更快一些,但代价是其他程序运行得更慢。
但是有问题。当您在 Visual Studio IDE 中开始编译时,IDE 将为编译生成一个单独的进程,并且仅将其输出重定向到它自己的窗口。由于编译过程现在没有自己的窗口,因此不会获得加速。
【讨论】: