Здесь необходимо учитывать несколько моментов: когда вы меняете приоритет процесса, этот базовый приоритет наследуется всеми его потоками и другими процессами, которые он запускает. Текущий приоритет формируется из базового приоритета и ряда факторов, которые определяют, следует ли его повышать или нет - нахождение на переднем плане само по себе не обязательно повышает приоритет, но такие вещи, как выход из состояния ожидания или выполнение некоторого ввода-вывода, могут дать короткий временный импульс.
Я бы предположил, что выполнение вашего процесса Excel с высоким приоритетом при работе с этими очень интенсивными рабочими книгами может иметь смысл, и я бы сказал, что второй способ под названием «Высокоприоритетный Excel» может быть хорошим способом сделать это. Сначала создайте однострочный пакетный файл, который запускает команду запуска с соответствующими переключателями, например:
start "high priority excel" /max /high "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE"
(в 64-разрядной версии Windows это будет происходить, 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 где-нибудь под рукой - может быть, офисную папку, или папку ac: \ scripts или что-то подобное, или вашу домашнюю папку, чтобы это могло перемещаться с компьютера на компьютер. Создайте новый ярлык, который указывает на этот файл, сделайте стартовую папку папкой, в которой хранится файл. Выберите значок для файла. Перейдите к исполняемому файлу Excel.exe, а затем для ясности выберите что-то, кроме обычного значка Excel .
Щелкните ваш новый ярлык, и он вызовет Excel, запущенный как процесс с высоким приоритетом, с базовым приоритетом 13, а при запуске он, вероятно, получит максимальный приоритет для процессов не в реальном времени, равных 15. Даже если что-то еще получит импульс, это не должно получить более высокий приоритет. Обратите внимание, что процесс переднего плана НЕ получает повышение приоритета только за то, что находится на переднем плане (не начиная с NT4.0). Так, что происходит?
Подчеркните то, что мы знаем до сих пор: процессы становятся по очереди в соответствии с приоритетом, но не с абсолютным исключением процессов с более низким приоритетом (ну, на самом деле, с потоками, но давайте оставим процессы для удобства обсуждения). Что происходит, когда процесс получает свою «очередь»? Он запускается на единицу времени, называемую квантом. Как долго это квант? Это зависит...
Именно здесь процесс переднего плана использует больше ресурсов - когда он получает ход, этот ход может длиться в три раза дольше, чем ход фоновых процессов. Так что это может не получиться очень часто (в зависимости от приоритета), но когда это произойдет, оно затянет его надолго.
Вы можете выбрать использование коротких или длинных квантов (по умолчанию - короткая для ОС рабочей станции, длинная на серверах), а также для ускорения или ускорения процесса переднего плана (переменная для w / s, фиксированная для серверов по умолчанию) и, если она повышена, сколько (эффективно до 3 раз). Теперь уловка состоит в том, что если вы решите изменить множитель, вы получите все с очень короткими значениями для кванта, тогда как если вы отключите форсирование переднего плана, все получится длиннее, но в равной степени. Если вы отключите его, конечно, фоновые службы Windows получат ту же квоту, что и ваши пользовательские приложения, что может быть не идеальным. Необходимо установить значение в реестре по адресу: HKLM \ System \ CurrentControlSet \ Control \ PriorityControl \ Win32PrioritySeparation, используя битовую маску. Чтобы упростить задачу, наиболее вероятные значения:
2 = значение по умолчанию, означает использование значений по умолчанию с максимальным усилением. значения по умолчанию на рабочей станции O / S являются короткими и переменными. 8 = фиксированный, короткий квант (передний и задний фоны равны) 40 (десятичный, шестнадцатеричный x28) = фиксированный и длинный (то же самое, что и значения по умолчанию для сервера) 36 (десятичный, шестнадцатеричный x24) = короткий, переменный, но минимальное усиление для процесса переднего плана , Я думаю, что это тот, который, вероятно, даст вам наибольшую выгоду, чтобы уменьшить количество конкурирующих приложений, но позволит Excel получить больше ресурсов, когда на переднем плане (если вы также повысите его приоритет).
Попробуйте и посмотрите, надеюсь, это поможет - ваш пробег может меняться, конечно.
Кроме того: во многих других приложениях или процессах узким местом является центральный процессор - ваши примеры синхронизации Outlook и просмотра IE, вероятно, имеют сеть, и, возможно, для Outlook некоторые дисковые операции ввода-вывода являются более важными факторами их скорости, так что они получают Повышение на переднем плане или нет, влияние видимой производительности, вероятно, ниже того, что вы можете увидеть простым наблюдением.