Há algumas coisas diferentes a considerar aqui:
Quando você altera a prioridade de um processo, essa prioridade básica é herdada por todos os seus threads e por outros processos iniciados. A prioridade atual é feita a partir da prioridade básica e de vários fatores que determinam se ela deve ser reforçada ou não - estar em primeiro plano não necessariamente aumenta a prioridade, mas coisas como sair de um estado de espera ou fazer alguma IO podem dê um pequeno impulso temporário.
Eu sugeriria que executar o processo do Excel com uma alta prioridade ao trabalhar com essas pastas de trabalho muito intensas poderia fazer sentido, e eu diria que um segundo atalho chamado "Excel de alta prioridade" pode ser uma boa maneira de fazer isso.
Primeiro, faça um arquivo em lote de uma linha que execute o comando start com os switches apropriados, por exemplo:
start "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE"
(em uma versão de 64 bits do Windows, isso seria start "high priority excel" /max /high "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"
, a menos que você também esteja executando uma versão de 64 bits do Office, que está disponível somente para 2010 em diante start "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office14\EXCEL.EXE"
)
Observe que o título da janela pode ser o que você quiser, mas não é opcional.
Agora salve isso como, por exemplo, HiperExcel.cmd em algum lugar útil - talvez a pasta office, ou uma pasta c: \ scripts ou algo assim, ou sua pasta pessoal, para que isso possa fazer roaming de máquina para máquina.
Crie um novo atalho que aponte para este arquivo, torne a pasta de início a pasta onde o arquivo é mantido. Escolha um ícone para o arquivo - navegue até o executável Excel.exe e escolha algo diferente do ícone do Excel usual para maior clareza.
Clique no seu novo atalho e ele invocará o Excel sendo executado como um processo de alta prioridade, com uma prioridade básica de 13 e quando executado provavelmente obterá a prioridade máxima para processos em tempo real de 15. Mesmo que algo chegue um impulso, não deve ter maior prioridade. Observe que o processo de primeiro plano NÃO recebe um aumento de prioridade apenas por estar em primeiro plano (não desde o NT4.0). Então, o que está acontecendo?
Recapitule o que sabemos até agora: os processos se revezam de acordo com a prioridade, mas não com a exclusão absoluta de processos de baixa prioridade (bem, os threads realmente, mas vamos manter os processos em mãos para facilitar a discussão).
O que acontece quando um processo recebe seu "turno"? Ele começa a correr por uma unidade de tempo chamada quantum. Quanto tempo é um quantum? Depende ...
É nesse ponto que o processo de primeiro plano usa mais recursos - quando ocorre uma curva, esse turno pode durar três vezes mais do que os turnos dos processos de segundo plano. Por isso, pode não ser muito frequente (dependendo da prioridade), mas quando isso acontece, ele o detém por mais tempo.
Você pode optar por usar quantums curtos ou longos (o padrão é curto no SO da estação de trabalho, long em servidores) e ter o processo de foreground aumentado ou não (variável para w / s, fixo para servidores por padrão) e impulsionado, por quanto (efetivamente até 3 vezes).
Agora, a parte complicada disso é que, se você escolher mudar o multiplicador, acabará tendo tudo com valores muito curtos para o quantum, ao passo que, se você desabilitar o primeiro plano, tudo terá um valor maior, mas igual. Se você desativá-lo, é claro, os serviços de janelas de segundo plano obtêm o mesmo quantum que os aplicativos do usuário, o que pode não ser o ideal.
Você precisa definir o valor no registro em: HKLM \ System \ CurrentControlSet \ Control \ PriorityControl \ Win32PrioritySeparation, usando uma máscara de bits. Para facilitar as coisas, os valores mais prováveis que você deseja são:
2 = valor padrão, significa usar padrões com aumento máximo. os padrões na estação de trabalho O / S são curtos e variáveis.
8 = quantum fixo e curto (o primeiro plano e o fundo são iguais)
40 (decimal, x28 hex) = fixo e longo (isto é o mesmo que os padrões do servidor)
36 (decimal, x24 hex) = curto, variável, mas mínimo impulso para o processo de primeiro plano. Eu acho que este é o que provavelmente lhe dará mais benefícios para reduzir a quantidade que outros aplicativos competem, mas permitir que o Excel obtenha mais recursos quando em primeiro plano (contanto que você também aumente sua prioridade).
Experimente e veja, espero que isso ajude - sua milhagem pode variar, é claro.
Além de:
Muitos outros aplicativos ou processos não têm a CPU como gargalo - seus exemplos de sincronização do Outlook e navegação do IE provavelmente têm a rede e, possivelmente, para o Outlook algum disco rígido como fatores mais importantes em sua velocidade. ou não, o impacto no desempenho visível está provavelmente abaixo do que você pode ver pela simples observação.