Как адаптивно настроить производительность в зависимости от загрузки процессора?

Там. Однако я даже не знаю, имеет ли этот вопрос смысл: как приложения на основе BOINC адаптируют свою производительность так, чтобы они использовали только "свободный" процессор, не влияя на выполнение пользовательских приложений?

Спасибо,
Tunnuz

2 ответа

Решение

Они устанавливают свой приоритет процесса так же, как и в режиме ожидания?

В окнах SetPriorityClass() об IDLE_PRIORITY_CLASS:

Процесс, потоки которого выполняются только в режиме ожидания. Потоки процесса вытесняются потоками любого процесса, работающего в классе с более высоким приоритетом. Примером является заставка. Класс с приоритетом простоя наследуется дочерними процессами.

Подробнее о планировании приоритетов в Windows здесь

Скорее всего, они просто устанавливают приоритет своих вычислительных потоков на очень низкий уровень, а затем полагаются на планировщик ОС, чтобы сделать все остальное. Потоки / процессы с низким приоритетом будут работать только тогда, когда никаким другим потокам не нужно время ЦП для чего-либо.

Другие вопросы по тегам