Как установить сродство процессора в Wine или CrossOver?

5037
hpy

Есть некоторые старые игры, которым не нравятся многоядерные процессоры в современных компьютерах. Мне интересно, есть ли способ установить привязку процессора к ним на «1» под Wine или CrossOver? то есть в родной среде Windows вы должны щелкнуть правой кнопкой мыши по процессу игры в диспетчере задач, а затем установить сходство там.

Я сталкивался с программой RunFirst.exe, но не могу понять, как ее запустить, а затем игру одной командой.

Предложения приветствуются. Спасибо!

5

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

2
Ye Lin Aung

Я думаю, что это возможно с командой taskset. Запустите вино так:

taskset -c 0 wine program_name.exe 

избавиться от отладочных сообщений:

WINEDEBUG=-all taskset -c 0 wine program_name.exe 

Часть «-c 0» установит привязку cpu для ядра 1, «-c 1» установит его для ядра 2 и т. Д. См. «Man taskset» для получения дополнительной информации.

Спасибо за совет, только что попробовал, но Mac OS X, похоже, не поставляется с набором задач. Есть другие идеи? hpy 14 лет назад 0
1
Matt B.

Setting processor affinity on OS X is not supported. There is no such system call that wine could make to achieve this functionality. The related bug for this at WineHQ is appropriately closed as a WONTFIX (Bug 30480 - Setting CPU affinity doesn't work on Macs).

See also this related SU question: "How to set processor affinity on OS X?".

So while Jens' answer is a valiant effort, Wine will silently (or not so silently, depending on WINEDEBUG) discard those API calls to set affinity on a Mac.

The workaround commonly cited is to use one of Xcode's developer tools (like Instruments) to limit the total number of active cores available to the entire system. Not pretty, but it works. Instruments.app Preferences: General Pane

0
Jens Mühlenhoff

Запустите файл taskmgr.exe, который поставляется вместе с Wine, и он позволяет вам установить сходство, как в Windows :).

Я не знаю, как установить его постоянно или автоматизировать его установку.

Возможно, тот же API, который Windows использует для этой задачи, присутствует в Wine, что означает, что для этой задачи можно использовать инструмент Windows.

Редактировать:

Я нашел инструмент, который делает именно это:

http://retired.beyondlogic.org/solutions/processutil/processutil.htm

Process -a name_of_exe 1 устанавливает маску сходства для процессора 0.

Process -a name_of_exe 11 устанавливает маску сходства для процессора 0 и 1.

... и так далее.

Смотрите также:

http://en.wikipedia.org/wiki/Affinity_mask

Wine вылетает с делением на ноль, если я пытаюсь использовать `Process.exe -a notepad.exe 1` при открытом блокноте (по состоянию на Wine 2.16; также происходит в Wine 1.7.7) vitormm 7 лет назад 0