Ada beberapa hal yang perlu dipertimbangkan untuk menentukan apakah thread proses game Anda digunakan dengan tepat dan dijadwalkan untuk mendapatkan performa terbaik.
- Kecepatan frame
- Multithreading dan paralelisasi thread
- Afinitas core CPU
Multithreading
Banyak game dan game engine menggunakan multithreading untuk membagi pekerjaan CPU menjadi tugas logis, yang mungkin dijalankan secara independen. Salah satu konfigurasi umum adalah thread game untuk logika game dan input, thread render untuk menyiapkan dan mengirimkan objek yang akan digambar, serta thread pekerja untuk subtugas lain seperti animasi atau audio.
Sebaiknya memparalelkan thread untuk memanfaatkan peningkatan performa multithreading. Contohnya adalah skenario saat game dan thread render berjalan sebagian atau sepenuhnya serentak pada core yang berbeda. Hal ini tidak selalu dapat dilakukan, seperti dalam kasus dengan dependensi data bersama; tetapi, jika memungkinkan, hal ini dapat mengakibatkan waktu CPU yang lebih rendah sehingga berpotensi meningkatkan kecepatan frame.
Afinitas core CPU
Salah satu faktor yang secara signifikan memengaruhi performa beban kerja CPU Anda adalah cara penjadwalannya pada core. Kolom ini dapat dibagi menjadi dua komponen:
- Apakah thread game Anda berjalan pada core terbaik untuk performa
- Apakah thread game Anda sering beralih antar-core
Anda dapat menyelidiki perilaku thread CPU di bagian Penggunaan CPU dengan mengaktifkan
CPU dalam konfigurasi profil saat mengambil rekaman aktivitas. Dengan memperbesar bagian
rekaman aktivitas <200 milidetik, Anda dapat melihat setiap proses yang berjalan di core CPU perangkat. Biasanya, core kecil sesuai dengan indeks yang lebih kecil (misalnya CPU 0
-3
),
sedangkan core besar sesuai dengan indeks yang lebih tinggi (misalnya CPU 6
-7
).
Umumnya, saat game berada di latar depan, thread persisten seperti thread game dan thread render harus berjalan di core besar berperforma tinggi, sedangkan thread proses dan pekerja lainnya dapat dijadwalkan pada core yang lebih kecil.
Anda juga dapat mengamati apakah thread game sering beralih antar-core, jika thread utama dan render Anda mengubah core dalam satu frame CPU atau antara dua frame CPU berturut-turut. Perilaku CPU ini kemungkinan merupakan indikator bahwa thread game Anda tidak dikaitkan dengan benar. Sakelar inti tersebut menimbulkan beberapa overhead dari tombol konteks dan hilangnya status dengan cache/register inti, yang mengakibatkan peningkatan panjang frame CPU Anda.