我注意到当 Excel 2007(可能还有更早的版本)具有窗口焦点时,Excel 会全速运行,这意味着文件打开速度快,长时间运行的 VBA 宏执行速度也很快。
如果 Excel 窗口失去焦点,Excel 的线程优先级似乎急剧下降,移动焦点时打开的大文件打开缓慢,复杂的 VBA 宏需要很长时间才能完成。
有没有办法让 Excel 优先级保持高,不管它是否聚焦?
我知道我可以通过任务管理器人为地提高线程优先级,但我不确定这可能对我的电子表格或操作系统产生什么连锁反应。
我的系统是带有 4Gb RAM 的快速双核系统,运行的是 Vista 64。
编辑澄清:
我的问题不仅仅是通过任务管理器提高 Excel 进程的优先级,因为这只会在Excel 具有窗口焦点时影响它。
关键是当 Excel 失去窗口焦点时会发生什么。
从广泛使用Excel,看来,通过设计,它刻意降低自己的进程优先级时,Excel窗口不具有焦点。
为 Excel 进程设置更高的优先级并不能阻止这种情况的发生 - 它只会在 Excel 获得焦点时赋予更高的进程优先级,但在失去焦点时它仍然会急剧下降。
在正常的 Excel 使用中(可能 99% 的人都在使用它),您不会注意到这种效果,但是对于庞大的电子表格(我认为大约有 2000 个工作表)和需要几分钟执行的复杂 VBA 宏,效果非常好显。
理想情况下,无论 Excel 窗口是否聚焦,我都需要它保持相同的线程优先级。
到目前为止,我只是在处理过程中从计算机上坐了几分钟,这样我就不会在它嘎吱作响时不小心点击 Excel 窗口,但我只是希望有一个更好的解决方案......也许某种注册表黑客?
编辑:
我只在此链接上的网络上发现了其他有关此问题的提及
这是相关的报价...
但是,如果我使 Excel 2000 窗口对用户可见并保持该窗口处于焦点,则宏以预期的速度执行。同样,窗口必须具有焦点,否则宏会再次变慢以爬行。
无论如何要在 Windows 7 中保存进程优先级设置,而不是在每个会话中打开任务管理器并手动执行?
我已经读到将某些内容设置为实时是一个很大的禁忌,所以我不打算这样做。但是我确实有一个应用程序,我需要确保它在我的系统上始终具有最高优先级,因为它对我正在运行的其余应用程序至关重要。将优先级设置为高,比实时低一级有什么危险吗?
另外,如何通过更改快捷方式目标来做到这一点?命令是什么?
经验证据表明,Dropbox 在启动时的索引编制是我的 Windows 7 分区速度变慢的主要来源——在编制索引时事情会变得缓慢,并在这一步完成后恢复正常,并且 Dropbox 图标变为绿色复选标记。
如何使初始 Dropbox 索引对多任务处理更加友好?
是否可以在 Windows 7(以及旧版本,如果可能)下更改某个进程的 GPU 优先级?
更改 CPU 优先级似乎对 GPU 使用率没有任何影响。我有一个程序在 GPU 上做一些数学运算,但我希望它只使用空闲的 GPU 周期。
我使用了一个很好的(免费)进程管理器,称为ATMonitor for Mac OS X,它有很多很酷的隐藏功能,其中之一是能够单击正在运行的进程并将“renice”从 +20(较低优先级)设置为-20(最高优先级)。
最好的部分是它在重新启动之间保持不变。所以你想让 XYZ 一直得到充分的关注,你设置一次就完成了。
我想在运行特定守护程序的 iPad 上做同样的事情(renice 进程),但我不知道如何永久设置 renice。
我可以做一次,它工作正常,但设置在重新启动时丢失。我在某处阅读。
现在,对于永久重置进程的优先级,这不能直接完成。但是,您可以使用一个 shell 脚本来伪造它,该脚本启动应用程序然后立即使用它。给该脚本一个“.command”扩展名,它将在 GUI 中双击。不是很优雅,但它完成了工作。
但正如它所说,不是很优雅,我不认为这就是 ATMonitor 的做法。
我发现了这个问题,他们提供了一种方法来将其作为启动参数,但没有明显的方法将其保存为持久值。例如,如果程序不打算由launchd 启动。
我如何为每个可执行二进制文件设置一个永久的 renice 级别,独立于其 PID、何时、如何或为什么启动?
即使不播放音频,pulseaudio 进程有时也会出现 ~40% 的 CPU 使用率,这是否正常?该进程似乎以实时优先级运行,这是问题的原因吗?
更新:我停用了实时调度/etc/pulse/daemon.conf并将 nice-level 设置为0. 不幸的是,它似乎没有效果。
更新 2:我已经删除了icecast和darkice,我几天前安装了它来设置网络广播电台,因为我认为它们可能是问题的一部分。Pulseaudio 仍然使用大量 cpu 时间,而且似乎我不是唯一遇到此问题的人。如果您需要更多系统规格,请询问我。
以下屏幕截图中有关该机器的一些(相关)信息:
- 软呢帽 18
- 惠普精英本 8460p
- 英特尔 i5-2520M

我家有四台电脑 - 不包括使用 Wifi 和我的智能手机的 iPod。有没有一种方法可以让我的笔记本电脑优先于其他设备使用互联网?
正常运行,所有Chrome进程都有正常优先级。各种线程代表各种选项卡、扩展等。
但是,然后我启动了具有高 CPU 优先级的 Chrome。我在用着:
cmd.exe /c start "" /high "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
Run Code Online (Sandbox Code Playgroud)
然后一些线程以高优先级运行,一些线程以正常优先级运行,其他线程以低优先级运行。
为什么?
是否可以让所有chrome子线程以高优先级运行?
也许我可以通过在单进程模式下运行 chrome 来实现它,但这并不理想。
Windows 10
Chrome 73.0.3683.103(官方版本)(64 位)
我正在开始长时间的内存和 CPU 密集型运行。我知道如何从任务管理器手动更改进程优先级。
有没有办法可以从.bat文件中以低优先级运行它,因为这是我启动它的方式?
priority ×10
process ×4
windows-7 ×3
windows ×2
batch-file ×1
cpu ×1
cpu-usage ×1
dropbox ×1
fedora ×1
gpu ×1
internet ×1
launchd ×1
macos ×1
multitasking ×1
pulse-audio ×1
task-manager ×1
traffic ×1
windows-10 ×1