Khi bạn chuyển sang cửa sổ khác hoặc thu nhỏ game, cả game lẫn Windows đều cho game chạy chậm lại để tiết kiệm điện. Lúc quay lại, gói tin tồn đọng dồn tới một lượt, hoặc kết nối đã bị ngắt.
Vì sao Nhấn Alt+Tab sang cửa sổ khác hoặc thu nhỏ game → Dẫn đến Trong lúc không hiển thị, game hạ FPS xuống rất thấp hoặc dừng hẳn, Windows cũng hạ mức ưu tiên của chương trình không hiển thị → Trên màn hình Vừa quay lại thì tua nhanh, nếu thu nhỏ lâu thì mất kết nối
Khi làm một thao tác nhất định, Sau khi để yên một lúc
Phụ trách
Phụ trách chính Phát triển client (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Dù cửa sổ không hiển thị, vẫn nhận gói tin và gửi heartbeat trên thread riêng, kiểm tra thiết lập “chạy nền” (Run In Background) của engine, khi quay lại thì đồng bộ về trạng thái mới nhất một lần.
Con số tham khảo
Khi cửa sổ không hiển thị mà FPS bị hạ còn 5–10, mỗi khung hình dài 100–200 ms. Game xử lý gói tin theo từng khung hình sẽ đọc gói tin trễ đúng chừng ấy.
Trên đồ thị
Đứt quãng rồi dồn về · Khoảng cách khung hình (trước và sau khi chuyển cửa sổ), số gói đã xử lý
Chỗ cần xem
Để PresentMon chạy rồi thử Alt+Tab hoặc thu nhỏ, xem khoảng cách khung hình khi cửa sổ không hiển thị. Ghi thời điểm đổi focus cửa sổ vào log game để đối chiếu với lý do mất kết nối
Đúng nếu
trong lúc cửa sổ không hiển thị, khoảng cách khung hình tăng lên trên 100 ms hoặc không còn được ghi, lúc quay lại thì xử lý dồn một lượt các gói tồn đọng và tua nhanh. Thu nhỏ lâu thì mất kết nối do heartbeat timeout
Loại trừ nếu
cửa sổ vẫn mở phía trước mà vẫn bị như vậy → “Tiến trình chạy nền chiếm giữ CPU” hoặc phía mạng
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 11 không bảo đảm timer 1 ms cho chương trình có cửa sổ bị thu nhỏ hoặc bị che hoàn toàn và không phát âm thanh. Trên laptop chạy pin, Windows hạ các chương trình đó xuống tốc độ tiết kiệm điện nhất, và với CPU có nhiều loại core thì có thể cho chạy trên core hiệu suất (efficiency core) chậm hơn. Nếu trong hai client trên cùng PC chỉ client chạy nền bị bất thường, hãy xem thêm mục “Giới hạn xử lý ở cửa sổ chạy nền”.
Nguồn
Quality of ServiceMicrosoft Chương trình có cửa sổ không nhìn thấy và không phát âm thanh được xếp vào Low QoS; khi chạy pin thì được lập lịch với tốc độ CPU tiết kiệm nhất và trên efficiency core
timeBeginPeriod function (timeapi.h)Microsoft Windows 11 không bảo đảm độ phân giải timer cao hơn mặc định cho tiến trình có cửa sổ bị che hoặc thu nhỏ
Application.runInBackgroundUnity Giá trị mặc định của Unity là false nên khi cửa sổ xuống nền, vòng lặp game dừng lại