Sie können das /affinity
Flag mithilfe des start
Befehls verwenden, um die Kerne anzugeben, die ein Prozess verwenden soll.
Verwendungszweck
start /affinity n foo.exe -arguments
Ihre Verknüpfung würde also so aussehen:
c:\windows\system32\cmd.exe /C start /affinity n foo.exe -arguments
wobei n die CPU-Kernnummer +1 ist.
Um auf Core 0 zu laufen, wäre es also:
c:\windows\system32\cmd.exe /C start /affinity 1 foo.exe -arguments
.
Mehrere Kerne angeben
Angenommen, eine CPU hat 4 Kerne. So legen Sie die zu verwendenden Kerne fest:
Visualisieren Sie die Kerne als Array, wobei die Länge des Arrays der Anzahl der Kerne entspricht. Die Kerne werden in absteigender Reihenfolge von rechts nach links angeordnet:
[CPU3, CPU2, CPU1, CPU0]
Ersetzen Sie nun Kerne, die Ihr Prozess mit 1 verwenden soll, und diejenigen, die Sie nicht mit 0 verwenden möchten. Wenn ich möchte, dass mein Prozess Core 3 und 1 verwendet, möchte mein Array Folgendes:
[0,1,0,1]
"Pop" die Elemente des Arrays zu einem String. Nun würde es als dargestellt werden
0101
.Angenommen, der String ist binär und konvertiert ihn in Hexadezimal. Jetzt wäre es so
0x5
Jetzt benutze den gleichen Befehl,
start /affinity n foo.exe -arguments
aber jetztn
wird es0x5
gebenstart /affinity 0x5 foo.exe -arguments
- Die Quelle erklärt die Visualisierung als binäre Zeichenfolge, nicht als Array (check it out). Ich finde das etwas verwirrend, also erklärte ich es mit einem Array.
- Die Quelle gibt nicht an, dass Sie ein Präfix angeben müssen
0x
, um das Hexadezimalzeichen im Befehl anzuzeigen. Lautstart /?
Angabe wird angegeben, dass es sich um ein Hex handelt.