Как адаптивно настроить производительность в зависимости от загрузки процессора?
Там. Однако я даже не знаю, имеет ли этот вопрос смысл: как приложения на основе BOINC адаптируют свою производительность так, чтобы они использовали только "свободный" процессор, не влияя на выполнение пользовательских приложений?
Спасибо,
Tunnuz
2 ответа
Они устанавливают свой приоритет процесса так же, как и в режиме ожидания?
В окнах SetPriorityClass() об IDLE_PRIORITY_CLASS:
Процесс, потоки которого выполняются только в режиме ожидания. Потоки процесса вытесняются потоками любого процесса, работающего в классе с более высоким приоритетом. Примером является заставка. Класс с приоритетом простоя наследуется дочерними процессами.
Скорее всего, они просто устанавливают приоритет своих вычислительных потоков на очень низкий уровень, а затем полагаются на планировщик ОС, чтобы сделать все остальное. Потоки / процессы с низким приоритетом будут работать только тогда, когда никаким другим потокам не нужно время ЦП для чего-либо.