Hay un par de cosas diferentes a considerar aquí: cuando cambia la prioridad de un proceso, esa prioridad básica es heredada por todos sus hilos y otros procesos que comienza. La prioridad actual se compone de la prioridad base y una serie de factores que determinan si se debe aumentar o no; estar en primer plano no necesariamente aumenta la prioridad, pero cosas como salir de un estado de espera o hacer algo de IO pueden dar un breve impulso temporal.
Sugeriría que ejecutar su proceso de Excel con alta prioridad cuando trabaje en estos libros de trabajo muy intensivos podría tener sentido, y diría que un segundo acceso directo llamado "Excel de alta prioridad" podría ser una buena manera de hacerlo. Primero cree un archivo por lotes de una línea que ejecute el comando de inicio con los interruptores apropiados, por ejemplo:
start "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE"
(en una versión de Windows de 64 bits esto sería a start "high priority excel" /max /high "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"
menos que también esté ejecutando una versión de Office de 64 bits, que solo está disponible para 2010 en adelante start "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE"
) Tenga en cuenta que el título de la ventana puede ser lo que desee, pero no es opcional.
Ahora guarde esto como, por ejemplo, HiperExcel.cmd en algún lugar útil, tal vez la carpeta de Office, o la carpeta ac: \ scripts o somesuch, o su carpeta de inicio para que esto pueda moverse de una máquina a otra. Cree un nuevo acceso directo que apunte a este archivo, haga que la carpeta de inicio sea la carpeta donde se guarda el archivo. Elija un ícono para el archivo: busque el ejecutable Excel.exe y luego elija algo distinto del ícono habitual de Excel para mayor claridad.
Haga clic en su nuevo acceso directo e invocará a Excel ejecutándose como un proceso de alta prioridad, con una prioridad base de 13 y, cuando se ejecute, probablemente obtendrá la máxima prioridad para los procesos en tiempo no real de 15. Incluso si algo más recibe un impulso, No debería tener mayor prioridad. Tenga en cuenta que el proceso en primer plano NO obtiene un aumento de prioridad solo por estar en primer plano (no desde NT4.0). ¿Entonces qué está pasando?
Vuelva a limitar lo que sabemos hasta ahora: los procesos se turnan de acuerdo con la prioridad, pero no con la exclusión absoluta de los procesos de menor prioridad (bueno, los hilos realmente, pero guardemos las cosas en los procesos para facilitar la discusión). ¿Qué sucede cuando un proceso obtiene su "turno"? Se ejecuta por una unidad de tiempo llamada cuántica. ¿Cuánto dura un cuanto? Depende...
Aquí es donde el proceso en primer plano puede usar más recursos: cuando tiene un turno, ese turno puede durar tres veces más que los turnos de los procesos en segundo plano. Por lo tanto, es posible que no funcione con mucha frecuencia (según la prioridad), pero cuando lo hace, lo acapara por más tiempo.
Puede optar por usar cuánticos cortos o largos (el valor predeterminado es corto en el sistema operativo de la estación de trabajo, largo en los servidores) y aumentar o no el proceso en primer plano (variable para w / s, fijo para servidores de forma predeterminada), y si lo hace, cuánto (efectivamente hasta 3 veces). Ahora, la parte engañosa de esto es que si eliges cambiar el multiplicador, terminas con todo lo que tiene valores muy cortos para cuántica, mientras que si desactivas el impulso en primer plano, todo se vuelve más largo pero igual. Si lo deshabilita, por supuesto, los servicios de Windows en segundo plano obtienen la misma cantidad que sus aplicaciones de usuario, lo que podría no ser ideal. Debe establecer el valor en el registro en: HKLM \ System \ CurrentControlSet \ Control \ PriorityControl \ Win32PrioritySeparation, utilizando una máscara de bits. Para facilitar las cosas, los valores más probables que desea son:
2 = valor predeterminado, significa usar valores predeterminados con el impulso máximo. los valores predeterminados en la estación de trabajo O / S son cortos y variables. 8 = fijo, cuántico corto (primer plano y fondo son iguales) 40 (decimal, x28 hexadecimal) = fijo y largo (esto es lo mismo que los valores predeterminados del servidor) 36 (decimal, x24 hexadecimal) = impulso corto, variable pero mínimo para el proceso en primer plano . Creo que este es el que probablemente le dará el mayor beneficio para reducir la cantidad que compiten otras aplicaciones, pero le permite a Excel obtener más recursos cuando está en primer plano (siempre que también aumente su prioridad).
Pruébelo y vea, espero que esto ayude, su kilometraje puede variar, por supuesto.
Aparte: muchas otras aplicaciones o procesos no tienen la CPU como su cuello de botella: sus ejemplos de sincronización de Outlook y navegación IE probablemente tengan la red, y posiblemente para Outlook algunos discos IO como factores más importantes en su velocidad, así que si obtienen un Impulso en primer plano o no, el impacto en el rendimiento visible es probablemente inferior a lo que se puede ver con una simple observación.