Wie kann ich die CPU-Affinität in Wine oder CrossOver einstellen?

5108
hpy

Es gibt einige alte Spiele, die die Multicore-Prozessoren in heutigen Computern nicht mögen. Ich frage mich, ob es eine Möglichkeit gibt, die CPU-Affinität unter Wine oder CrossOver auf '1' zu setzen? In einer nativen Windows-Umgebung würden Sie mit der rechten Maustaste auf den Prozess des Spiels im Task-Manager klicken und dort die Affinität einstellen.

Ich bin auf ein Programm namens RunFirst.exe gestoßen, kann aber nicht herausfinden, wie es ausgeführt werden soll, und dann das Spiel in einem Befehl.

Vorschläge werden geschätzt. Vielen Dank!

5

3 Antworten auf die Frage

2
Ye Lin Aung

Ich denke, dass es mit dem Befehl taskset möglich ist. Wein wie folgt laufen lassen:

taskset -c 0 wine program_name.exe 

um debug-messages loszuwerden:

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

Der Teil "-c 0" legt die CPU-Affinität für Kern 1 fest, "-c 1" würde sie für Kern 2 festlegen usw. Weitere Informationen finden Sie unter "Man-Taskset".

Danke für den Tipp, habe es gerade ausprobiert, aber Mac OS X scheint nicht mit Aufgaben zu kommen. Irgendwelche anderen Ideen? hpy vor 14 Jahren 0
1
Matt B.

Die Einstellung der Prozessoraffinität unter OS X wird nicht unterstützt. Es gibt keinen solchen Systemaufruf, den Wein machen könnte, um diese Funktionalität zu erreichen. Der dazugehörige Bug bei WineHQ ist als WONTFIX entsprechend geschlossen ( Bug 30480 - Einstellung der CPU-Affinität funktioniert nicht auf Macs ).

Siehe auch diese verwandte SU-Frage: "Wie kann ich die Prozessoraffinität unter OS X einstellen?" .

Während Jens 'Antwort eine mutige Anstrengung ist, verwirft Wine (oder abhängig von WINEDEBUG nicht so lautlos) diese API-Aufrufe, um die Affinität auf einem Mac festzulegen.

Die häufig genannte Problemumgehung besteht darin, eines der Entwicklungswerkzeuge von Xcode (wie Instruments) zu verwenden, um die Gesamtzahl der für das gesamte System verfügbaren aktiven Kerne zu begrenzen. Nicht hübsch, aber es funktioniert. Instruments.app Voreinstellungen: Allgemeiner Bereich

0
Jens Mühlenhoff

Führen Sie die im Lieferumfang von Wine enthaltene Taskmgr.exe aus, damit Sie die Affinität wie in Windows festlegen können :).

Ich weiß nicht, wie ich es dauerhaft einstellen oder automatisieren soll.

Möglicherweise ist in Wine die gleiche API vorhanden, die Windows für diese Task verwendet. Dies bedeutet, dass ein Windows-Tool für diese Task verwendet werden kann.

Bearbeiten:

Ich habe ein Werkzeug gefunden, das genau das macht:

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

Process -a name_of_exe 1 Setzt die Affinitätsmaske auf Prozessor 0.

Process -a name_of_exe 11 Setzt die Affinitätsmaske auf Prozessor 0 und 1.

... und so weiter.

Siehe auch:

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

Wine stürzt mit einer Division durch Null ab, wenn ich versuche, 'Process.exe -a notepad.exe 1' zu verwenden, während der Notizblock geöffnet ist (ab Wine 2.16; auch in Wine 1.7.7) vitormm vor 6 Jahren 0