Khi việc quét virus, Windows Update, phần mềm livestream hay video trên trình duyệt chiếm các core, game thread không được cấp CPU và phải chờ.
Vì sao Chương trình khác chiếm giữ core CPU trong thời gian dài → Dẫn đến Game thread phải chờ được lập lịch → Trên màn hình Khung hình bị trễ, việc xử lý gói tin đã nhận cũng trễ theo
Phụ trách chính Bên ngoài (Bên ngoài) · Phối hợp Phát triển client (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Điều chỉnh mức ưu tiên của game thread, ghi kèm mức dùng CPU của toàn PC vào log lúc xảy ra giật để phân biệt có phải do chương trình khác hay không.
Việc cần làm (Bên ngoài)
Hướng dẫn người chơi bật Game Mode của Windows, tắt các chương trình không cần thiết khi chơi (quét virus, Windows Update, phần mềm livestream, video trên trình duyệt).
Con số tham khảo
Windows thường giao core cho mỗi thread vài ms đến vài chục ms một lần. Chỉ cần bị lỡ một lượt lập lịch là mất một khung hình.
Trên đồ thị
Thỉnh thoảng vọt lên bất chợt · Mức dùng CPU của toàn PC, frame time
Chỗ cần xem
Ghi cột CPU ở tab Processes của Task Manager và Processor Information(_Total)\% Processor Time trong Performance Monitor cùng với frame time của PresentMon. Nghi phần mềm diệt virus thì ghi bằng New-MpPerformanceRecording rồi dùng Get-MpPerformanceReport xem file, tiến trình nào tốn nhiều thời gian quét
Đúng nếu
đúng lúc giật, mức dùng CPU của chương trình khác (quét virus, cập nhật, phần mềm livestream) vọt lên, hoặc file trong thư mục game nằm trong nhóm tốn thời gian quét nhiều nhất. Tắt chương trình đó hoặc đưa vào danh sách loại trừ thì hết
Loại trừ nếu
mức dùng CPU thấp mà cả màn hình vẫn khựng và tiếng bị rè → “Tiết kiệm điện NIC và lỗi driver” (độ trễ DPC)
Cách kiểm tra
Kiểm tra ở môi trường phía người chơi
Tìm hiểu thêm
Windows ưu tiên hơn một chút cho chương trình ở cửa sổ đang hiện phía trước (foreground), nhưng khi số việc cần chạy nhiều hơn số core thì game vẫn phải chờ. Với phần mềm diệt virus, tính năng “giám sát thời gian thực” còn hay chen vào hơn cả việc dùng CPU. Nó quét mỗi lần game mở file, nên những lần dừng lúc đọc asset kéo dài hơn.
Nguồn
MultitaskingMicrosoft Windows cấp cho mỗi thread một time slice, dùng hết thì chuyển sang thread tiếp theo; time slice khoảng 20 ms (tùy OS và CPU)
Priority BoostsMicrosoft Tiến trình của cửa sổ đang ở phía trước (foreground) được nâng mức ưu tiên lên bằng hoặc cao hơn tiến trình chạy nền