如何最有效地利用 Windows 7 中的 CPU 资源?

如何最有效地利用 Windows 7 中的 CPU 资源?

硬件:联想 T420s,配备 i7 处理器和 8GB RAM,64 位

如何配置我的计算机以最大化/优化对特定程序的资源分配?

我希望让 Dragon Naturally Speaking 尽快运行,同时也能够对 R、ArcGIS 或 MySQL 等执行同样的操作。

答案1

  • 您可以手动完成:
    1. 打开任务管理器Ctrl+Shift+Escape
    2. 右键单击程序应用选项卡并选择转至流程
    3. 右键单击该进程流程, 选择设置优先级,并选择“高于正常水平”或“高”(不要选择“实时”,除非你真的知道自己在做什么!)
    4. 再次右键单击该进程并选择设置亲和力并确保选中了所有 CPU 复选框(这是默认设置)

  • 如果您想自动执行此操作,可以创建一个脚本:
    1. 创建一个名为的文本文件,例如mysql.bat
      start /high "MySQL" "c:\mysql\mysqld.exe --options --blah"
    2. 然后创建它的快捷方式,确保设置跑步字段中的捷径选项卡设置为“最小化”。

答案2

这很可能是无法做到的,而且这样做的尝试会适得其反。试图强迫系统偏袒某个程序会降低其效率。其他程序仍然需要至少与现在相同的 CPU 量,因此会为首选程序留下相同的量。您可能会稍微改善首选程序的延迟,但代价是其他程序在运行时会重新填充更多的缓存,从而减慢其速度。

基本上,设计操作系统及其调度程序的人知道他们在做什么。除非你知道他们不知道的有关你具体用途的重要信息,否则你更有可能把事情弄得更糟而不是更好。

当您看到某个程序仅使用 50% 或 25% 的 CPU 或类似的偶数时,这几乎总是因为它已完全加载了其能够使用的内核数量。要让程序使用更多内核,通常需要重新设计它。

某些特定程序可能针对多核进行调整。如果程序是其中之一,并且该开关已关闭,则将其打开肯定会有所帮助。但大多数此类程序都会自动检测多核机器。因此通常没有改进的余地。

这种方式也可能导致性能灾难。只需询问火星探测器团队。例如,假设您提升的进程有两个线程,而系统只有一个核心。第一个线程被另一个进程当前占用的系统资源所阻塞。第二个线程可以取得很大的进展。第一个线程可能会停滞很长时间,因为第二个线程可能会使另一个进程处于饥饿状态,从而无法释放系统资源。

即使程序开发人员特意降低了第二个线程的优先级,试图让第一个线程优先获得 CPU 权,因为它正在执行重要的工作,这种情况也可能发生。Windows 为您提供的静态进程优先级控制太粗糙了。这将要例如,如果您有一个活动的防病毒扫描程序,则在许多文件访问时都会发生这种情况。

相关内容