Не смотря на то, что многоядерные процессоры (и уж, тем более, многопроцессорные компьютеры) давно вошли в нашу жизнь, далеко не все программы умеют корректно взаимодействовать с несколькими ядрами, а так же грамотно использовать и оптимизировать доступные системные ресурсы.

Уже давненько я столкнулся с интересной программой, которая позволяет управлять приоритетом использования ядер процессоров, т.е. фактически распределять нагрузку на то или иное ядро. О ней и пойдет речь в этой небольшой статье.

Вообще говоря, процессор является одним из ключевых, если не самых главных, компонентов, отвечающих за производительность в системе, посему имеет смысл корректно и правильно использовать его возможности. Глобально, в этом направлении, с точки зрения программной оптимизации есть два пути:

  • В случае с многоядерными процессорами, – это распределение нагрузки по ядрам. Дело здесь в том, что изначально не все процессы могут использовать адекватно все ядра в системе (т.е нет поддержки многоядерности) или корректно занимать те из них, что не заняты обсчетом других приложений и нужд, а посему имеет смысл вручную (или автоматически) разносить приложения на отдельные ядра или группы ядер, для корректного распределения нагрузки и/или ушустрения работы
  • В случае со всеми процессорами, т.е одноядерными в том числе, – это работа с приоритетами системы. Дело в том, что по умолчанию Windows присваивает всем запускаемым процессам нормальный приоритет, что ставит приложения в равные условия в плане получения процессорных мощностей. Однако, согласитесь, что, скажем, 3D игра и обычный блокнот, – это немного разные приложения и, очевидно, что игре нужно больше ресурсов процессора в реальном времени, т.к находясь в трехмерном приложении Вы вряд ли взаимодействуете с этим самым блокнотом и он Вам не нужен до поры до времени (да особых мощностей процессора блокноту почти не надо, – там той программы то.. раз два и нету). Отсюда, вроде как логично вытекает, что приоритеты у разных приложений должны быть разные (особенно во времена многоядерности то), но на практике это далеко от реальности.