Здесь необходимо учитывать несколько моментов: когда вы меняете приоритет процесса, этот базовый приоритет наследуется всеми его потоками и другими процессами, которые он запускает. Текущий приоритет составлен из базового приоритета и ряда факторов, которые определяют, следует ли его повышать или нет - нахождение на переднем плане само по себе не обязательно повышает приоритет, но такие вещи, как выход из состояния ожидания или выполнение некоторого ввода-вывода, могут дать короткий временный импульс.
Я бы предположил, что выполнение вашего процесса 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 некоторые дисковые операции ввода-вывода являются более важными факторами их скорости, так что они получают Повышение на переднем плане или нет, влияние видимой производительности, вероятно, ниже того, что вы можете увидеть простым наблюдением.