Однопоточное приложение, сбалансированное через ядра процессора?

Я когда-то использовал аналогию, чтобы объяснить, как RAM является дефектной моему клиенту. Я запустил в нормальных повторения уровня голоса и обнуляю, затем после нескольких секунд я бросил "ДВА!" громко там. Я затем объяснил, что их реакция состояла в том, как Windows XP/vista/7 реагирует: Это волнуется и Bluescreens.

0
задан 27 July 2012 в 03:04
1 ответ

«Сбалансированный» - термин относительный.

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

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

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


Для многопоточного обрабатывает ту же логику, но несколько раз: Вам не все равно WHERE потоки выполняются, пока они 'получают ли они необходимое процессорное время и работают быстро?
Я предполагаю, что нет.


Чтобы ответить на ваш вопрос: потому что вам действительно все равно, я не думаю, что это возможно.

Конечно, нет простого способа добиться этого в Windows (диспетчер задач и Process Explorer все равно не раскрывает его). Вы можете заглянуть в скрипты Power Shell, но я не верю, что там есть способ сделать это ...

2
ответ дан 4 December 2019 в 14:25

Теги

Похожие вопросы