Bagaimana cara mengatur afinitas suatu proses secara permanen?

17

Saya memiliki permainan yang memiliki masalah dengan penggunaan CPU, jadi salah satu perbaikannya adalah menonaktifkan satu inti dari quad core cpu. Karena setiap kali saya meluncurkan game, saya harus secara manual masuk ke Task Manager dan secara manual memasukkan afinitas, yang menyebalkan karena game baru saja dirilis namun cenderung sering crash.

Apakah ada solusi NON SOFTWARE?

Saya telah mencari beberapa solusi online dan tampaknya hanya diarahkan untuk Windows 7. Apakah ada solusi untuk pengguna Windows 8.1 seperti saya?

yuritsuki
sumber
Tolong jelaskan apa yang Anda maksud dengan "secara manual memasukkan afinitas"?
Pacerier
@Pacerier Saya harus mengubah afinitas secara manual, karena secara default ia memilih semua CPU untuk bekerja.
yuritsuki
Anda dapat mencoba mengatur "Mode kompatibilitas" ke versi windows yang cukup lama, yang menetapkan afinitas ke satu inti. Tapi saya tidak punya win8 untuk memeriksa apakah ini masih berfungsi.
CodesInChaos
@cyberwebpoweruser, Apakah jawaban di bawah ini cocok untuk Anda?
Pacerier

Jawaban:

24

Anda dapat membuat pintasan untuk menetapkan afinitas.

X:\Windows\System32\cmd.exe /C start /affinity Y game.exe

Y heksadesimal dan sedikit topeng:

0x1 - 0001 - Core0
0x2 - 0010 - Core1
0x3 - 0011 - Core1 & Core0
0x4 - 0100 - Core2
0x5 - 0101 - Core2 & Core0
0x6 - 0110 - Core2 & Core1
0x7 - 0111 - Core2 & Core1 & Core0
0x8 - 1000 - Core3
0x9 - 1001 - Core3 & Core0
0xA - 1010 - Core3 & Core1
0xB - 1011 - Core3 & Core1 & Core0
0xC - 1100 - Core3 & Core2
0xD - 1101 - Core3 & Core2 & Core0
0xE - 1110 - Core3 & Core2 & Core1
0xF - 1111 - Core3 & Core2 & Core1 & Core0
Alien
sumber
1
saya pikir Anda memiliki 3 yang pertama kacau
Richie Frame
Oh, sial .. ya :) Diperbaiki ..
The_aLiEn
4
Pertanyaan @The_aLiEn: Jika proses ini memulai proses lain, apakah proses kedua mewarisi afinitas dari proses pertama? Saya memiliki masalah yang sama dengan sebuah game, tetapi saya harus mengubah afinitas baik pada launcher maupun download manager pihak ke-3 yang dimulai oleh launcher agar bisa diselesaikan.
Nzall
2
Apakah Anda memerlukan cmd.exe /Cbagian itu, atau apakah itu sudah cukup untuk memulai start?
deltab
2
@NateKerkhofs harus diwarisi. Bukan hanya afinitas, seperti semua penjelas keamanan, pegangan yang dimiliki, dll.
The_aLiEn
7

Jika dengan "non software" yang Anda maksud tidak memerlukan perangkat lunak tambahan, ada. Anda dapat menjalankan program dari skrip perintah dan menggunakan sakelar afinitas"Start /AFFINITY 20 process.exe"

/AFFINITY 20memperlakukan 20sebagai angka heksidimal, dengan setara biner 100000, yang menetapkan afinitas ke inti 5 dari 0-5 pada prosesor 6 inti. Topeng hex serupa akan memungkinkan Anda menonaktifkan inti tertentu, seperti E, yang hanya menjalankan proses pada inti 1-3 dari 0-3 atau 0-5.

Richie Frame
sumber
"non-software" berarti cmd.
Pacerier
5

Bagi siapa pun yang mencari jawaban untuk ini dan tidak menemukan apa pun, solusi yang saya temukan adalah menggunakan aplikasi bernama WinAFC (atau AffinityChanger). Ini adalah GUI parsial, aplikasi baris perintah parsial yang memungkinkan Anda menentukan profil untuk executable tertentu, dan akan melakukan polling pada daftar proses untuk mereka. Jika menemukan proses yang cocok, itu akan mengubah afinitas proses tersebut sesuai dengan pengaturan di profil yang dimuat.

Ada beberapa dokumentasi di sini: http://affinitychanger.sourceforge.net/

Untuk tujuan saya, saya membuat profil yang terlihat seperti ini:

TestMode = 0
TimeInterval = 1
*\convert.exe := PAIR0+PAIR1

Profil ini mengatur setiap proses convert.exe untuk menggunakan dua pasangan inti CPU pertama (CPU0, CPU1, CPU2, dan CPU3), polling setiap detik. TestModeadalah toggle yang memungkinkan Anda untuk melihat apakah profil Anda berfungsi tanpa benar-benar menetapkan afinitas.

Semoga seseorang menemukan ini berguna!

Jake
sumber