Показать полную графическую версию : [решено] Как заставить приложение работать с одним ядром процессора
В диспетчере задач для любого приложения можно задать соответствие: сколько процессоров использовать. Есть приложение, которое нормально работает только с одним ядром. Как этому приложению назначить соответствие, чтобы оно автоматически использовало 1 ядро, не заходя каждый раз в диспетчер задач?
Интересует способ только средствами системы, или с привлечением стороннего софта?
Petya V4sechkin
14-02-2011, 20:26
Start an Application Assigned to a Specific CPU (http://www.howtogeek.com/howto/windows-vista/start-an-application-assigned-to-a-specific-cpu-in-windows-vista/)
tim.exe,
CPU Control - утилита для управления распределением физических ядер процессоров
Программа позволяет управлять приоритетом использования ядрами процессоров (поддерживаются как двухядерные, так и четырехядерные CPU). Вместо того, чтобы оставлять распределение на систему, можно самостоятельно установить последовательность использования свободных ресурсов, например, определив браузер на первое ядро, а межсетевой экран на второе.
Утилита предоставляет несколько режимов управления:
автоматический: CPU-Control самостоятельно отвечает за распределение приложений
ручной: по заранее заданному списку выполняет запуск пользовательских приложений
все процессы запускаются на первом логическом процессоре: для совместимости со старыми приложениями
все процессы запускаются на втором логическом процессоре
Способ предложенный Petya V4sechkin интересный :) Но ведь в этом случае процессор перейдет на одноядерный режим обработки данных для всех без исключения программ? Если конкретно для какого-то приложения, то: Ashampoo Core Tuner (http://soft.oszone.net/program/5865/Ashampoo_Core_Tuner/)
Да нужно конкретно для одного приложения.
Буду пробовать предложенные способы
Petya V4sechkin
14-02-2011, 20:44
Но ведь в этом случае процессор перейдет на одноядерный режим обработки данных для всех без исключения программ?
С чего это вдруг? Не вводите в заблуждение.
http://www.robpol86.com/index.php/ImageCFG
кратко:
imagecfg.exe "application/path.exe" -u
p.s. модифицирует исполняемый файл, так что делаем бэкап.
Start an Application Assigned to a Specific CPU »
И теперь у меня приложение всегда будет работать с одним ядром?
upd
Вроде понял. Теперь надо ярлык сделать для приложения, но у меня почему то не выходит.
Создаю ярлык, пишу C:\Windows\System32\cmd.exe /C start /affinity 1 "Путь к приложению", запускается командная строка и всё.
бубликов
14-02-2011, 21:58
Попутно в тему: а если использовать программу Process Explorer для этого? Я ей пользуюсь. Она сохраняет значение или в следующий раз снова надо прописывать? Вообще на ХР использовал для этого Prio http://www.prnwatch.com/rus/prio.html но на Семёрке конфликтует...Хотя это для задания приоритета.. но тоже ничего программка.
запускается командная строка и всё. »
а что Вы еще ждете? :) Единственным недостатком такого подхода является то, что в окне командной строки будет кратко вспышки на экране.
перевод статьи (http://translate.google.ru/translate?js=n&prev=_t&hl=ru&ie=UTF-8&layout=2&eotf=1&sl=en&tl=ru&u=http%3A%2F%2Fwww.howtogeek.com%2Fhowto%2Fwindows-vista%2Fstart-an-application-assigned-to-a-specific-cpu-in-windows-vista%2F)
tim.exe, используйте вариант с imagecfg.
http://www.robpol86.com/index.php/File:Imagecfg.zip
Запустить командную строку из папки с распакованным файлом, в ней написать:
imagecfg "ПУТЬ_К_ПРИЛОЖЕНИЮ.exe" -u
Тогда данное приложение будет всегда запускаться на одном цп (алгоритм выбора цп зависит от фазы луны).
imagecfg "ПУТЬ_К_ПРИЛОЖЕНИЮ.exe" -a 0x00
позволяет явно указать ЦП, на которых надо запускать приложения
0x01 = 1 = CPU0
0x02 = 2 = CPU1
0x04 = 4 = CPU2
0x08 = 8 = CPU3
0x10 = 16 = CPU4
0x20 = 32 = CPU5
0x40 = 64 = CPU6
0x80 = 128 = CPU7
0x0f = 15 = CPU0, CPU1, CPU2, and CPU3 (1+2+4+8 = 15)
0xff уберёт это ограничение.
И никаких программ в фоне держать не надо. И никаких запусков через командную строку - приложение будет всегда запускаться на одном цп (или на тех, которые были указаны).
Конечно, этот способ мало пригоден для компонентов системы, но для них это и не требуется. А вот для игр, для прикладного ПО - этот способ подходит отлично.
imagecfg "ПУТЬ_К_ПРИЛОЖЕНИЮ.exe" -u »
Не работает. http://img411.imageshack.us/img411/2466/cmdf.png (http://img411.imageshack.us/i/cmdf.png/)
Приложение также использует 2 ядра.
а что Вы еще ждете? »
command prompt window will briefly flash on the screen на русском "окно командной строки кратко вспыхнет на экране".
Т.е. приложение должно запуститься.
upd
imagecfg "ПУТЬ_К_ПРИЛОЖЕНИЮ.exe" -a 0x00 »
Наверное надо так
imagecfg -a 0x00 "ПУТЬ_К_ПРИЛОЖЕНИЮ.exe"
Но теперь вообще игра не запускается.
Petya V4sechkin
15-02-2011, 09:10
Теперь надо ярлык сделать для приложения, но у меня почему то не выходит.
Создаю ярлык, пишу C:\Windows\System32\cmd.exe /C start /affinity 1 "Путь к приложению", запускается командная строка и всё.
Если путь в кавычках, то так:
C:\Windows\System32\cmd.exe /C start /affinity 1 "" "Путь к приложению"
Я победил эту проблему.
Создаем ярлык, в поле расположение пишем
C:\Windows\System32\cmd.exe /C start /affinity 1 имя приложения.exe
Называем ярлык как хотим. Далее заходим в свойства ярлыка и поле Рабочая папка пишем путь к исполняемому файлу.
Должно получится, чтото типа этого
http://img252.imageshack.us/img252/7922/74878021.png (http://img252.imageshack.us/i/74878021.png/)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC