这里有几件不同的事情要考虑:当您更改进程的优先级时,该基本优先级将由其所有线程以及其他启动的进程继承。当前优先级由基本优先级和决定是否提高其优先级的许多因素组成-处于前台本身并不一定会提高优先级,但是退出等待状态或执行某些IO之类的操作可以暂时提振一下。
我建议在处理这些非常密集的工作簿时以较高的优先级运行Excel流程可能是有意义的,并且我想说第二个快捷方式“高优先级Excel”可能是实现此目的的一种好方法。首先制作一个单行批处理文件,该文件使用适当的开关运行启动命令,例如:
start "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE"
(在Windows的64位版本上,start "high priority excel" /max /high "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"
除非您还正在运行64位版本的Office(仅适用于2010年以后start "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE"
),否则它将是这样)。请注意,窗口的标题可以是您喜欢的任何名称,但不是可选的。
现在,将其保存为例如HiperExcel.cmd,放在方便的位置-可能是office文件夹,或者是ac:\ scripts文件夹等,或者是您的主文件夹,以便可以在计算机之间漫游。创建一个指向该文件的新快捷方式,将开始文件夹设为保存该文件的文件夹。为文件选择一个图标-浏览至Excel.exe可执行文件,然后选择除通常的Excel图标以外的其他内容以保持清晰度。
单击新的快捷方式,它将调用以高优先级进程运行的Excel,其基本优先级为13,并且在运行时,它可能会获得非实时进程的最高优先级15。即使其他方面有所提高,它不应获得更高的优先级。请注意,前台进程不会仅仅因为位于前台而获得优先级的提升(自NT4.0起)。那么发生了什么?
概括一下到目前为止我们所了解的内容:流程可以按优先级轮流使用,但不能绝对排除低优先级的流程(嗯,确实是线程,但是让事情留在流程中以便于讨论)。流程“转向”时会发生什么?它可以运行一个称为量子的时间单位。量子多长时间?这取决于...
这是前台进程使用更多资源的地方-当它确实转弯时,该转弯的持续时间可以是后台进程转弯的三倍。因此,它可能不会很频繁地使用(取决于优先级),但是当它通过时,它会占用更长的时间。
您可以选择使用短量或长量(默认是工作站OS上是短的,是服务器上是长的),并提高或不提高前台进程(对w / s可变,默认情况下对服务器固定),如果提高,按多少(最多3次)。现在,棘手的部分是,如果您选择更改乘数,则最终所有结果的量子值都非常短,而如果禁用前景增强,则所有结果都将得到更长但相等的值。当然,如果禁用它,则后台Windows服务的用户数量与用户应用程序相同,这可能不是理想的选择。您需要使用位掩码在注册表中的值:HKLM \ System \ CurrentControlSet \ Control \ PriorityControl \ Win32PrioritySeparation中设置该值。为了使事情变得容易,您需要的最可能的值是:
2 =默认值,表示使用具有最大提升的默认值。工作站O / S的默认值是简短且可变的。8 =固定,短量子(前景和背景相等)40(十进制,x28十六进制)=固定和长(这与服务器默认值相同)36(十进制,x24十六进制)=短,可变,但对前景处理的提升最小。我认为这可能是最大的好处,可以减少其他应用程序竞争的数量,但允许Excel在前台获得更多资源(只要您还提高了它的优先级)。
试试看,希望对您有所帮助-当然,您的里程可能会有所不同。
撇开:许多其他应用程序或进程没有以CPU为瓶颈-您的Outlook同步和IE浏览器示例可能具有网络,对于Outlook,某些磁盘IO可能是它们速度上更重要的因素,因此它们是否获得了不管前景提升与否,可见性能的影响可能都低于通过简单观察即可看到的效果。