Повечето компютри на Windows вече се захранват от многоядрени процесори, а последните версии на Windows обикновено вършат много добра работа по автоматично разделяне на общата мощност на вашия компютър за най-доброто приспособяване на работещите ви приложения и игри. Но понякога потребителят и Windows могат да имат различни идеи, когато става въпрос за вземане на решения за това как най-добре да се използва процесора на компютъра и именно там напредналите потребители могат да влязат и ръчно да ограничат определени приложения или процеси до конкретни ядра на процесора, благодарение на функция наречена афинитет на процесора . Ето как да го направите.
Когато става дума за версии на Windows на потребителско ниво, възможността на потребителя да конфигурира ръчно използването на конкретни ядра на процесора датира от времевия период на Windows XP / 2000, въпреки че стъпките се различават леко във всяка версия на Windows. За стъпките и екранните снимки ние използваме Windows 10, но четците, работещи с по-стари версии на Windows, по-специално Windows 7 и Windows 8 / 8.1, трябва да могат да следват основните стъпки, изправени пред малки разлики към потребителския интерфейс на Windows.
Важно е също да се отбележи, преди да продължим, че промяната на афинитета на процесора за определен процес или приложение може да причини проблеми със стабилността и вероятно ще влоши работата на съвременните многонишкови приложения и игри. Ето защо, уверете се, че първо експериментирате с несъществени приложения и данни и не забравяйте да запазите всеки отворен напредък в работата или играта, преди да променяте всички обсъдени тук настройки, тъй като са възможни сривове на приложения или система.
Защо да ограничите достъпа на приложението до CPU ядра?
Както бе споменато по-горе, повечето потребители ще искат Windows автоматично да се справи с процесорната мощ на компютъра, като се уверят, че приложенията, които могат да използват всички ядра, имат достъп до тях. Това обикновено води до по-добра производителност, така че основният въпрос е защо потребителят някога би искал да ограничи или ограничи определено приложение с много нишки до по-малко от общото количество физически и логически ядра, с които разполага компютър.
На този въпрос има два основни отговора: 1) за осигуряване на съвместимост и производителност с по-стария софтуер и 2) за стартиране на иначе тежко резбован процесор, като същевременно запазва достатъчно ресурси за едновременно изпълнение на други задачи.
Ще започнем с първия отговор: съвместимост и производителност. Някои приложения и игри на Windows бяха кодирани много преди многонишковите и многоядрените процесори на ниво потребител да бъдат реалност. По-специално създателите на по-стари игри може би никога не са предвиждали, че някой, който играе в играта, ще има нещо повече от компютър с Windows, захранван от едно високочестотно ядро на процесора. Когато софтуерът от тази ера срещне съвременни процесори, опаковащи четири, шест, осем или дори повече ядра, понякога това може да доведе до проблеми с производителността или дори до невъзможност изобщо да стартирате програмата.
Много приложения и игри все още работят отлично, дори когато са захранвани от най-новите 8-ядрени / 16-нишкови monster desktop процесори. Но ако се опитвате да играете по-стара игра и имате проблеми, използването на афинитета на процесора за ръчно ограничаване на процеса на играта само до едно от многото ви ядра може да бъде добра стъпка за отстраняване на проблеми, която трябва да опитате.
Вторият отговор е вероятно по-полезен за повече потребители на Windows и ще бъде в основата на нашите стъпка по стъпка инструкции по-долу. Въпреки че много приложения на Windows, особено игри, все още не могат да се възползват от повече от едно или две ядра, приложенията за създаване на съдържание като видео енкодери и инструменти за 3D визуализация са оптимизирани през последните години, за да могат да използват всяка унция мощност на обработка, която вашият компютър може да хвърли към тях. Обикновено искате тези приложения да стартират възможно най-бързо, но понякога скоростта или времето за завършване не са основният фактор и по-скоро запазете част от процесорната мощ на вашия компютър за друга задача, докато вашето взискателно медийно приложение работи в заден план. Именно тук афинитетът на процесора наистина е полезен.
Стъпка по стъпка: Нашият пример
Едно приложение, което може да изяде всички CPU ядра, които хвърляте върху него, е x264 видео енкодер като RipBot264 (или HandBrake, или който и да е от наличните безброй инструменти за кодиране x264 и x265). За нашия пример искаме RipBot264 да кодира видео файл, но също така искаме да работим по други проекти в приложения като Photoshop и Premiere едновременно.
По подразбиране приложение като RipBot264 ще използва цялата налична обработваща мощност.
Ако стартирахме кодирането си RipBot264 и след това стартирахме Photoshop и Premiere, Windows ще направи всичко възможно да даде приоритет и да се съобрази с нуждите на всяко приложение, но понякога Windows също ще направи грешка, което води до забавяне или временно замръзване в нашите активни приложения. Можем да се опитаме да избегнем това, като използваме афинитета на процесора, за да ограничим използването на RipBot264 от нашите CPU ядра.За да започнете, първо се уверете, че сте влезли в потребителски акаунт на Windows с администраторски права. След това продължете и стартирайте приложението, което искате да ограничите. В нашия случай това е RipBot264.
След това стартирайте Windows Task Manager, като щракнете с десния бутон на мишката върху лентата на задачите и изберете Мениджър на задачи, или като използвате комбинацията от клавишни комбинации Ctrl-Shift-Escape . По подразбиране диспечерът на задачите в последните версии на Windows стартира в „основен“ изглед. Ако вашият Task Manager не изглежда като този от нашите екранни снимки, щракнете върху Още подробности, за да разкриете пълния интерфейс. След като направите това, уверете се, че сте в раздела „Процеси“ и сега намерете приложението или процеса си.
Тази последна стъпка е потенциално по-лесно казана, отколкото направена. В много случаи просто ще намерите желаното приложение в списъка. В други случаи някои приложения могат да използват уникални процеси освен основния процес на приложение за определени задачи. Ключът е да намерите процеса или процесите, които са отговорни за използването на процесора, който искате да ограничите. Един добър начин да се тества това е да задействате взискателната активност (в нашия случай започнете да кодирате видео файл) и след това да сортирате Task Manager от колоната на процесора, за да намерите процесите, които използват най-високите нива на CPU ресурси. Ако името на процеса (отново в нашия случай това е процес на кодиране H.264) съвпада с вашето целево приложение, вие сте готови.
С идентифицирания правилен процес, щракнете с десния бутон върху него и изберете Отиди на детайли . Това ще ви отведе до раздела Детайли на диспечера на задачите и автоматично ще подчертае правилния процес.
Сега отново щракнете с десния бутон върху процеса и изберете Задаване на афинитет .
На следващо място, време е да решите колко искате да ограничите приложението си. Поставете отметка в квадратчето до Всички процесори, за да премахнете отметката от всички полета на процесора и след това изберете поне едно поле за процесор, за да отметнете, като всяко от тях представлява физическо или логическо ядро. Липсват дефекти на процесора или уникални сценарии за овърклок, като цяло няма значение кои ядра сте избрали.
В нашия пример искаме да ограничим RipBot264 до четири ядра, оставяйки много място за другите ни по-чувствителни към времето задачи. След като сте избрали желания брой ядра, натиснете OK, за да затворите прозореца за афинитет на процесора. Промените ви ще влязат в сила незабавно и ако приложението вече беше ангажирано с тежка за процесора задача, ще видите как използването на процесора се спуска на всички, освен избраните от вас ядра.
След като конфигурираме RipBot264 да използва само 4 от нашите 16 ядра, използването на процесора спада веднага на останалите ядра.
С тази настройка можем да оставим RipBot264 да кодира възможно най-бързо на тези четири ядра, но останалите дванадесет ядра в нашата система са свободни да обработват други приложения. Ако по-късно приключим с нашата друга работа и искаме да възстановим пълната производителност на RipBot264, можем просто да повторим стъпките по-горе, за да се върнем към прозореца за присъединяване към процесора и след това да поставим отметка в полето Всички процесори, за да дадем отново достъп на приложението до всички наши процесори ядра.Уговорки
В допълнение към споменатите по-рано проблеми със стабилността, има още едно голямо предупреждение, което трябва да вземете предвид. Всички промени, които правите в афинитета на процесора, се нулират при всяко рестартиране на този процес. Това означава, че като минимум ще трябва да повтаряте тези стъпки всеки път, когато рестартирате компютъра си. Някои процеси са още по-трудни, тъй като се презареждат автоматично в зависимост от инструкциите на приложението. В нашата настройка на RipBot264, например, процесът на кодиране H.264, който променихме, започва всеки път, когато приложението премине към кодиране на нов видео файл.
Възможно е да можете да заобиколите това ограничение, като създадете персонализирани скриптове, които задават афинитета на процесора на приложението ви чрез команден ред, базиран на партиден файл или пряк път, но някои приложения могат да използват уникални или случайни процеси, които правят подобни усилия трудни или невъзможни. Ето защо е най-добре да експериментирате индивидуално с всяко приложение, което искате да ограничите, за да намерите най-добрия начин за ръчна конфигуриране на афинитета на процесора.
