Làm thế nào để tôi thiết lập vĩnh viễn mối quan hệ của một quá trình?


17

Tôi có một trò chơi có vấn đề với việc sử dụng CPU, vì vậy một trong những cách khắc phục là vô hiệu hóa một lõi ra khỏi cpu lõi tứ. Vì mỗi lần tôi khởi chạy trò chơi, tôi phải tự vào Trình quản lý tác vụ và nhập thủ công mối quan hệ, điều này thật tệ vì trò chơi mới được phát hành nhưng dễ bị treo.

Có giải pháp PHẦN MỀM NON không?

Tôi đã tìm kiếm một số giải pháp trực tuyến và chúng dường như chỉ hướng tới Windows 7. Có giải pháp nào cho người dùng Windows 8.1 như tôi không?


Hãy giải thích ý của bạn là gì khi "nhập thủ công mối quan hệ"?
Pacerier

@Pacerier Tôi phải thay đổi mối quan hệ theo cách thủ công, vì theo mặc định, nó chọn tất cả các CPU để làm việc.
yuritsuki

Bạn có thể thử đặt "Chế độ tương thích" thành phiên bản cửa sổ đủ cũ, đặt mối quan hệ với một lõi. Nhưng tôi không có win8 trong tay để kiểm tra xem cái này có còn hoạt động không.
CodeInChaos

@cyberwebpoweruser, câu trả lời dưới đây có hiệu quả với bạn không?
Pacerier

Câu trả lời:


24

Bạn có thể tạo một lối tắt để gán mối quan hệ.

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

Y là thập lục phân và là một mặt nạ bit:

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

1
Tôi nghĩ rằng bạn đã có 3 lần đầu tiên bị rối tung
Richie Frame

Ôi, chết tiệt .. có :) Đã sửa ..
The_aLiEn

4
Câu hỏi @The_aLiEn: Nếu quy trình này bắt đầu một quy trình khác, quy trình thứ hai đó có kế thừa mối quan hệ của quy trình đầu tiên không? Tôi có cùng một vấn đề với một trò chơi, nhưng tôi cần thay đổi mối quan hệ trên cả trình khởi chạy và trình quản lý tải xuống của bên thứ 3 được khởi chạy bởi trình khởi chạy để giải quyết.
Nzall

2
Bạn có cần cmd.exe /Cmột phần, hoặc nó sẽ là đủ để bắt đầu start?
deltab

2
@NateKerkhofs nên kế thừa. Không chỉ mối quan hệ, như tất cả các mô tả bảo mật, xử lý thuộc sở hữu, v.v.
The_aLiEn

7

Nếu "không phải phần mềm", bạn có nghĩa là không yêu cầu phần mềm bổ sung, thì có. Bạn có thể chạy chương trình từ một tập lệnh và sử dụng công tắc mối quan hệ"Start /AFFINITY 20 process.exe"

/AFFINITY 20coi 20số thập phân là số thập phân, tương đương nhị phân 100000, đặt ái lực với lõi 5 trên 0-5 trên bộ xử lý 6 lõi. Một mặt nạ hex tương tự sẽ cho phép bạn vô hiệu hóa một lõi cụ thể, chẳng hạn như E, nó chỉ chạy quá trình trên các lõi 1-3 trong số 0-3 hoặc 0-5.


"phi phần mềm" có nghĩa là cmd.
Pacerier

5

Đối với bất kỳ ai khác đang tìm kiếm câu trả lời cho vấn đề này và không tìm thấy bất kỳ, giải pháp tôi tìm thấy là sử dụng một ứng dụng có tên WinAFC (hoặc AffinityChanger). Đây là một GUI, một phần ứng dụng dòng lệnh cho phép bạn chỉ định các cấu hình cho các tệp thực thi nhất định và sẽ thăm dò danh sách quy trình cho chúng. Nếu tìm thấy các quy trình phù hợp, nó sẽ thay đổi ái lực của các quy trình đó theo các cài đặt trong cấu hình được tải.

Có một số tài liệu ở đây: http://affinitychanger.sourceforge.net/

Với mục đích của tôi, tôi đã tạo một hồ sơ trông như thế này:

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

Cấu hình này đặt bất kỳ quy trình convert.exe nào để sử dụng hai cặp lõi CPU đầu tiên (CPU0, CPU1, CPU2 và CPU3), bỏ phiếu mỗi giây. TestModelà một chuyển đổi cho phép bạn xem nếu hồ sơ của bạn đang hoạt động mà không thực sự thiết lập mối quan hệ.

Hy vọng ai đó thấy điều này hữu ích!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.