Что такое Windows Priority and Affinity и какие преимущества она предоставляет?

29326
KronoS

Что такое Приоритет и Сходство (находится в диспетчере задач) и для чего они используются:

Найдено в диспетчере задач

В каких ситуациях следует / можно их использовать и какие преимущества можно найти при настройке этих параметров.

9

4 ответа на вопрос

3
shf301

Настройка схожести делает что-то, но вы никогда не захотите использовать это.

Установка соответствия процессору заставляет Windows использовать только выбранный процессор (или ядра). Если вы установили привязку к одному процессору, Windows будет запускать это приложение только на этом процессоре, но не на других.

Windows автоматически помещает запущенные приложения на наименее загруженный процессор, поэтому ограничение его одним процессором не позволяет Windows выполнять свою работу. Даже если CPU / core 1 заняты другими приложениями, Windows не сможет запустить приложение с установленным сродством на CPU / Core 2.

На самом деле единственная причина, по которой вы захотите это сделать, - это запустить какое-то старое приложение, которое работает некорректно при работе в многопроцессорной / базовой системе.

*> вы никогда не захотите его использовать. * Не правда. Если у вас однопоточное приложение, то оно * не может * использовать потоки / ядра ЦП в их полном объеме, и Windows ничего не может сделать, чтобы заставить / обмануть его. Если у вас есть два однопоточных приложения, вы можете указать Windows, чтобы каждое из них использовало отдельный поток / ядро, чтобы вместо общего использования ЦП около 50-75% вы могли довести его до 100% (каждое ядро). максимально используется одной программой). Так что да, вы действительно можете использовать настройки, но это особый сценарий, который большинство людей не будет знать / осознавать / нуждаться. Synetech 12 лет назад 5
Если у вас есть два однопоточных приложения, Windows будет запускаться в каждом потоке / ядре, и вы получите 100% загрузку ЦП без установки соответствия. Для тестирования я просто запустил 4 экземпляра однопоточной программы на 4-ядерном компьютере и получил 100% загрузку процессора. Windows достаточно умна, чтобы эффективно планировать процессоры. shf301 12 лет назад 1
Я думаю, это зависит от системы и / или версии Windows. Я видел (XP), что оба ядра зависли на 50-75%, где оба процесса были установлены на оба ядра, и ручная установка их максимально использовала процессор. Synetech 12 лет назад 0
@Synetech: Это кажется почти невозможным. Это должно было бы переместить два процесса из ядра в ядро, всегда оба одновременно. David Schwartz 11 лет назад 0
Еще один действительный вариант использования для этого: есть приложение, которое может использовать все доступные процессоры и может препятствовать нормальной работе других программ и / или заставить ОС очень медленно реагировать на ввод пользователя. В этом случае кто-то может решить ограничить такое приложение только некоторыми процессорами. Как разработчик я часто использую эту функцию при профилировании своих приложений, интенсивно использующих процессор, поскольку сам процесс профилирования требует использования процессора. Eyal Roth 6 лет назад 0
3
Jim W

This is a very useful feature in certain scenarios. Let's say you have a multi-threaded application that tends to either be idle or aggressively grabbing 100% of every CPU for several minutes, doing searches, builds, etc. Let's call this application "eclipse."

Let's also say that while you're working on this application, you have a bunch of other applications that have modest cpu requirements, but are essentially real-time applications. For example, while you're using Eclipse and it is randomly kicking off builds or doing gwt compiles, you're also using your computer to stream music or perform research in a browser window (for example, researching the cause of a build problem). Sure, you will not die if your music skips or your browser stops responding, but it's annoying.

What affinity lets you do is confine your cpu eating app to 7/8 cores so that everyone else is guaranteed access to a relatively unused cpu and you don't constantly have to deal with stuttering and interruptions to the usability of everything else on your computer while eclipse is grinding away.

2
Evan Plaice

Установка сходства говорит этому процессу, на каких процессорах ему разрешено работать.

Хотя это очень полезно для некоторых нишевых случаев, средний пользователь, вероятно, не должен связываться с ним.

Например, если процессу было разрешено запускать свое собственное ядро, он мог бы работать (почти) в режиме реального времени без того, чтобы эти 70 оконных утилит постоянно прерывали и меняли стек на процессор для своего собственного временного интервала. Приложения реального времени - это то, что Windows никогда не сможет сделать, пока многопроцессорные / многоядерные системы не появятся на сцене, потому что ОС будет постоянно прерывать / переключать задачи приложения для своих собственных целей. Теперь это в основном можно преодолеть, изолировав один процессор приложения реального времени, не позволяя всем другим приложениям в системе использовать этот процессор. Это очень нишевая тема, но такие системы, как (реальные) симуляторы полета, автоматизация производства и системы обратной связи управления, зависят от архитектуры реального времени.

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

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

Более старые приложения, которые ломаются при распределении по нескольким процессорам, могут эффективно ограничиваться одним ядром / процессором для решения проблемы.

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

Есть много случаев, когда близость жизненно важна, но, если вы не знаете, что это такое, она вам, вероятно, не понадобится.

1
David M

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

Например: начиная с Windows Vista, проигрыватель Windows Media автоматически получает более высокий приоритет, чтобы обеспечить плавное и непрерывное воспроизведение мультимедийных файлов, по умолчанию только около 20% процессорного времени доступно другим процессам. Это просто пример, чтобы помочь вам понять, что делают приоритеты. (Вы можете прочитать больше о приоритетах Media Player в Vista на Technet .)

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

Сладкое спасибо! Так что хорошего руководства по использованию Afinity? KronoS 14 лет назад 0
http://www.addictivetips.com/windows-tips/how-to-set-processor-affinity-to-an-application-in-windows/ Moab 13 лет назад 0
Хорошее руководство по использованию близости: «Не надо». Jamie Hanrahan 9 лет назад 0
«Только 20% процессорного времени доступно другим процессам» не является точным описанием. Фактическая реализация состоит в том, что потоку, который выбирает планировщик мультимедийного класса, разрешается запускаться до _80% каждого интервала планирования в классе приоритетов в реальном времени. Это не обязательно должно использовать так много, и если это не так. более 20% будут доступны для других тем. Jamie Hanrahan 9 лет назад 0