Настройка постоянного соответствия процессорного ядра процессору в Windows
Я планирую получить новый процессор и смотрю на четырехъядерный процессор i5.
Причина четырехъядерности в том, что я, как правило, многозадачен, например, запускаю Visual Studio, Eclipse Aptana, Photoshop, Lightroom и множество браузеров Chrome одновременно.
Мне интересно, можно ли выделить определенные процессы, такие как Visual Studio, для постоянного использования определенного ядра, и есть ли инструмент, превосходящий диспетчер задач Windows, для этого?
Это даст мне более быстрый многозадачный опыт, или я не буду замечать эффекты?
Я также планирую перейти на 8 ГБ с 3 ГБ, поскольку после нескольких часов веб-разработки у меня возникли серьезные проблемы с несколькими открытыми средами разработки и использованием инструментов разработчика Chrome. Достаточно ли будет дополнительной оперативной памяти или мне нужен более быстрый процессор? (в настоящее время работает Core 2 Duo E6750 @ 2,66 Гц)
4 ответа
Как правило, вы не заметите эффектов размещения отдельных процессов на определенных ядрах, поскольку Windows, как правило, довольно хорошо умеет планировать элементы между ядрами, особенно в Windows 7, которая была разработана с учетом этого.
Я обнаружил, что в общем случае занятая задача тратит большую часть (обычно>60% для обычных приложений и>95% для однопоточных игр) своего времени на одном ядре, а Windows будет планировать другие задачи на других ядрах, поскольку дела становятся более загруженными, поэтому я не беспокоиться об этом. Кажется, я помню, что читал, что Windows 7 может сказать, какие ядра "предпочтительнее" в системе, поэтому в системе Intel, которая использует функцию Turbo Boost (которая использует активность на первом ядре, чтобы определить, нужно ли его повышать) и Hyperthreading, то Windows будет стремиться планировать однопоточные задачи на первом ядре, а затем многопоточные задачи будут преимущественно назначаться "реальным" ядрам перед гиперпоточными "виртуальными" ядрами. Я видел, как это работает на моем i7 (четырехъядерном, 8-многопоточном ядре), и это работает довольно хорошо с играми, почти исключительно использующими первое ядро и затем умеренное использование на альтернативных "реальных" ядрах.
Единственное время, которое я нахожу полезным для определения сродства, - это просмотр видео с использованием определенных медиаплееров, которые являются мультипроцессорными, но, похоже, имеют проблемы с синхронизацией. Mediaplayer Classic Hometheater Edition, кажется, довольно сильно "подпрыгивает", когда вы начинаете переходить вперед в видео, предположительно потому, что он использует несколько потоков для декодирования, и они не очень хорошо синхронизированы между ядрами, и в этом случае он настроен на использование только одного процессора останавливает прыжки
В случае, если вам нужно изменить привязку к процессору, есть пара инструментов:
Runfirst помогает исправить старые программы, убедившись, что они запускаются только на первом процессоре, доступном в системе.
В этом обзоре Toms Hardware есть инструмент, который автоматически переназначит вам сходство задач, но ссылка на них, похоже, не работает, и в наши дни ее найти немного сложно. Я думаю, что эта программа должна работать постоянно, когда вы хотите, чтобы она назначала сходства. Похоже, вы могли бы получить это здесь
В целом, хотя я не думаю, что вы увидите какую-либо реальную выгоду в ручном назначении сродства, и я думаю, что эта практика в значительной степени вымерла, поскольку программное обеспечение стало лучше.
Я бы искренне ожидал, что 8 ГБ оперативной памяти будет более чем достаточно для удовлетворения ваших потребностей, но я не имею реального опыта использования инструментов, которые вы используете. Я могу сказать, что в системе объемом 6 Гбайт у меня никогда не было проблем с работой системы из-за перегрузки жесткого диска, когда я работал на нескольких виртуальных машинах и IDE (eclipse)...
Назначение привязки ЦП к конкретным исполняемым файлам - плохая идея. Установка сходства для процесса не резервирует ЦП для указанного вами процесса, блокируя все другие процессы от этого ЦП. Это просто говорит о том, что этот процесс может использовать только назначенный процессор.
Это проблема, потому что процессору требуется гораздо больше времени, чем обычно. Если вы используете привязку, чтобы связать процесс, скажем, CPU 0, и что-то еще использует CPU 0, когда вашему процессу требуется CPU, ваш процесс вообще не может работать, пока что-то еще не будет сделано с CPU 0.
Гораздо лучше бегать куда-то, чем никуда, и бегать никуда не является распространенным результатом установки сходства.
Еще один ужасный результат установки привязки процесса к одному ЦП состоит в том, что вы ограничиваете все потоки этого процесса одним ЦП. Тем самым убивая любое преимущество в производительности, которое могло иметь многопоточность.
Короче говоря, просто позвольте планировщику Windows делать свое дело. Чем меньше вариантов вы предоставите, тем хуже будет работа.
Джейми прав, НО есть некоторые распространенные программы, которые работают намного лучше в одном потоке, например AutoCAD, и я назначаю их одному ядру, и они работают быстрее с меньшими задержками. При этом есть и другие компоненты AutoCAD, такие как печать, которые тогда будут работать немного медленнее, поскольку эти процессы могут поддаваться многоядерным функциям. К сожалению, программное обеспечение все еще недостаточно оптимизировано для многоядерных систем!!!
Наоборот. Windows 10 назначает первое ядро (или предпочтительное ядро в Zen2) для системных прерываний Windows и всех приложений по умолчанию, что приводит к тому, что каждое фоновое приложение и такие вещи, как Chrome, используют это ядро, оставляя меньше места для других приложений (таких как игры).
Кроме того, с другой стороны, некоторым фоновым приложениям в реальном времени, таким как MIDI-транслятор и Corsair iCUE, необходимы постоянные плавные тактовые циклы для оптимальной работы. Вы должны оставить их в покое, когда устанавливаете сходство для тяжелых многоядерных приложений.