Có một số điều cần cân nhắc để xác định xem các luồng quy trình trò chơi của bạn có được sử dụng và lên lịch một cách thích hợp để đạt được hiệu suất tốt nhất hay không.
- Tốc độ khung hình
- Đa luồng và song song hoá luồng
- Mối liên kết giữa các lõi CPU
Đa luồng
Nhiều trò chơi và công cụ phát triển trò chơi sử dụng tính năng đa luồng để chia công việc của CPU thành các tác vụ logic. Các tác vụ này có thể chạy độc lập một phần. Một cấu hình điển hình là luồng trò chơi cho đầu vào và logic trò chơi, luồng kết xuất để chuẩn bị và gửi các đối tượng cần vẽ, cũng như các luồng worker cho những tác vụ phụ khác như hoạt ảnh hoặc âm thanh.
Bạn nên song song hoá các luồng để tận dụng hiệu suất của tính năng đa luồng. Ví dụ về trường hợp này là khi các luồng trò chơi và kết xuất chạy một phần hoặc hoàn toàn đồng thời trên các lõi khác nhau. Điều này không phải lúc nào cũng có thể thực hiện được, chẳng hạn như trong trường hợp có các phần phụ thuộc dữ liệu được chia sẻ; tuy nhiên, khi có thể, điều này có thể dẫn đến Thời gian của CPU thấp hơn và do đó có khả năng tốc độ khung hình cao hơn.
Mối liên kết giữa các lõi CPU
Một yếu tố ảnh hưởng đáng kể đến hiệu quả của các khối lượng công việc CPU là cách chúng được lên lịch trên các nhân. Việc này có thể được chia thành 2 thành phần:
- Liệu các luồng trò chơi của bạn có đang chạy trên nhân phù hợp nhất cho khối lượng công việc của chúng hay không.
- Liệu các luồng trò chơi của bạn có thường xuyên chuyển đổi giữa các lõi hay không.
Các thiết bị hiện đại thường sử dụng một cấu trúc gọi là điện toán không đồng nhất, trong đó các lõi có nhiều mức hiệu suất:
- Một hoặc một vài lõi mang lại hiệu suất đỉnh cao, nhưng tiêu thụ nhiều điện năng hơn. Những lõi này đôi khi được gọi là lõi "lớn".
- Các lõi khác có hiệu suất đỉnh thấp hơn nhưng tiết kiệm điện hơn. Những lõi này đôi khi được gọi là lõi "nhỏ".
- Không bắt buộc: một hoặc nhiều lõi cân bằng giữa hiệu suất và mức tiêu thụ điện. Những lõi này đôi khi được gọi là lõi "trung bình".
Bạn có thể điều tra hành vi của luồng CPU trong phần Mức sử dụng CPU bằng cách bật CPU trong cấu hình hồ sơ khi lấy dấu vết. Bằng cách phóng to một phần của dấu vết <200 ms, bạn có thể xem các quy trình riêng lẻ đang chạy trên các lõi CPU của thiết bị. Thông thường, các lõi nhỏ hơn sẽ tương ứng với các chỉ mục nhỏ hơn (ví dụ: CPU "0" – "3"), trong khi các lõi lớn hơn sẽ tương ứng với các chỉ mục cao hơn (ví dụ: CPU "6" – "7") và các lõi ở giữa (nếu có) sẽ chiếm các chỉ mục ở giữa (ví dụ: CPU "5" – "6"). Đây là quy ước chung, nhưng không phải là điều chắc chắn.
Nếu bạn nhận thấy một số luồng đang được lên lịch trên những CPU không đáp ứng được nhu cầu về hiệu suất hoặc nguồn điện, hãy cân nhắc việc đặt thủ công mối liên kết CPU cho các luồng đó.
Bạn cũng có thể quan sát xem các luồng của mình có chuyển đổi giữa các lõi hay không. Những lần chuyển đổi lõi như vậy sẽ gây ra một số chi phí phát sinh từ việc chuyển đổi ngữ cảnh và mất trạng thái với bộ nhớ đệm/các thanh ghi của lõi.
Việc đặt mối liên kết CPU cho một luồng hướng dẫn hệ thống lên lịch cho luồng đó trên nhân đã cho khi trò chơi của bạn ở nền trước. Bạn cần cân nhắc một số yếu tố khi thực hiện việc này:
- Phần mềm nền tảng không thể điều chỉnh linh hoạt vị trí của tác vụ cho các yếu tố thời gian chạy, chẳng hạn như tải và điều chỉnh nhiệt độ.
Thử nghiệm hiệu suất trên các thiết bị khác nhau có thể mang lại các đặc điểm hiệu suất rất khác nhau, đặc biệt là nếu các thiết bị có sự khác biệt đáng kể về mức giá hoặc ngày phát hành.
Một thiết bị mới hơn hoặc đắt tiền hơn có thể chạy một khối lượng công việc nhất định một cách thoải mái trên một lõi nhỏ, nhưng một thiết bị cũ hơn hoặc có giá cả phải chăng hơn có thể yêu cầu một lõi lớn hơn để đáp ứng thời hạn cho cùng một khối lượng công việc đó.
Bằng cách buộc các mối liên kết với các lõi lớn, bạn có thể làm tăng mức tiêu thụ pin và tải nhiệt một cách không cần thiết.
Vì những lý do này, bạn thường không nên đặt mối liên kết CPU theo cách thủ công.