Jika data tersebar di berbagai tempat di memori, CPU harus menunggu setiap kali mengambilnya dari RAM yang lambat.
Mengapa Objek tersebar lewat pointer dan diakses tanpa urutan → Akibatnya Data tidak ada di cache CPU sehingga setiap kali harus dibaca dari RAM (sekitar 100 kali lebih lambat) → Di layar Untuk pekerjaan yang sama, biaya tick menjadi beberapa kali lipat; jika parah, terjadi slow motion
Penanggung jawab utama Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Letakkan data yang sering dipakai bersama secara berurutan di memori (data-oriented design).
Di grafik
Selalu tinggi sejak awal · Waktu tick, utilisasi CPU
Yang diperiksa
Jalankan perf stat -d -p PID pada proses server game untuk mengukur jumlah instruksi per siklus (insn per cycle) serta cache miss L1 dan LLC, lalu bandingkan dengan waktu tick dan utilisasi CPU
Cocok jika
CPU terus sibuk, tetapi insn per cycle rendah dan LLC miss banyak. Pasti penyebab ini jika build dengan tata letak data yang diubah menurunkan waktu tick secara drastis pada jumlah pemain yang sama
Tidak cocok jika
Utilisasi CPU rendah tetapi tick lambat: lebih mungkin penyebab yang menunggu di luar CPU, seperti lock atau menunggu I/O
perf-stat(1) — Linux manual pageperf -p menghitung event hardware dari proses yang sedang berjalan dan menampilkan insn per cycle; -d menambahkan event data cache L1 dan LLC