Pembangun permainan Malte Skarupke Perbandingan prestasi kunci berdasarkan и apabila menggunakan penjadual tugas yang berbeza. Ujian menunjukkan kelewatan yang luar biasa tinggi apabila menggunakan Spinlock dengan yang lalai yang digunakan dalam Linux penjadual tugas. Penulis ujian menyimpulkan bahawa penjadual tugas Linux mempunyai isu yang memberi kesan negatif terhadap prestasi permainan yang dicipta untuk Google Stadia, yang menjalankan permainan pada GPU di awan dan hanya menstrim kandungan skrin kepada klien sehingga 60 bingkai sesaat. Dalam keadaan ini, adalah penting untuk memastikan penghantaran bingkai tepat pada masanya, dan latensi yang melebihi milisaat menjadi ketara.
Untuk membincangkan ujian-ujian Linus Torvalds, yang menggelarnya sebagai "sampah tulen" dan satu contoh bagaimana, tanpa memahami topik tersebut sepenuhnya, seseorang boleh mendapatkan metrik yang tidak mencerminkan realiti. Spinlock ialah primitif peringkat rendah yang mesti digunakan dengan sangat berhati-hati dan pemahaman yang menyeluruh tentang butiran dalam ruang pengguna, jika tidak, keputusan yang ditunjukkan oleh penulis ujian boleh memudaratkan. Linus menasihatkan pembangun permainan supaya tidak menggunakan spinlock atau cuba membina sistem penguncian mereka sendiri di sekelilingnya, tetapi menggunakan mekanisme sedia ada yang terbukti yang memaklumkan sistem apabila kunci sedang menunggu, sekali gus menghapuskan pengaruh penjadual.
Alat tambah berasaskan Spinlock hanya boleh digunakan jika anda benar-benar pasti penjadual tidak akan mengganggu pelaksanaannya. Kunci berasaskan spinlock yang digunakan dalam ujian dilaksanakan melalui pembalut tersuai yang berjalan dalam ruang pengguna. Penjadual tugas boleh, pada bila-bila masa rawak, mengambil kawalan semasa pelaksanaan pembalut ini dan beralih kepada tugas lain. Memandangkan ukuran prestasi adalah berdasarkan nilai pemasa mutlak, latensi yang diukur dalam ujian bukan sahaja merangkumi latensi dalam pengendali kunci tetapi juga kod yang dilaksanakan dalam konteks yang berbeza. Ini bermakna ia bukan sahaja mengukur apa yang cuba diukur oleh pengarang ujian tetapi juga "hingar" daripada pengiraan lain dalam sistem.
Pengarang ujian membantah Linus, dengan menunjukkan bahawa penggunaan sistem penguncian berasaskan spinlock tersuai sering digunakan dalam amalan dalam permainan, kerana apabila menggunakan penjadual yang lebih mudah berbanding dalam Linux, ujian menunjukkan prestasi yang lebih tinggi. Linus , bahawa penjadual Linux Ia bersifat universal, telah diasah selama beberapa dekad, dan dioptimumkan bukan sahaja untuk desktop dan permainan, tetapi juga untuk jenis beban kerja lain, seperti sistem pelayan, jadi ia mengambil kira banyak nuansa semasa menjadualkan tugas.
Menambah pengoptimuman khusus untuk mengurangkan kependaman dalam permainan Google Stadia mungkin meningkatkan daya tindak balas dalam kes tertentu, tetapi kemungkinan besar akan mengurangkan kecekapan keseluruhan penjadual. Contohnya, penjadual Windows menunjukkan prestasi yang lebih baik dalam ujian yang dibincangkan, kerana ia jauh lebih mudah daripada penjadual Linux dan dioptimumkan terutamanya untuk tugasan khusus desktop.
Sumber: opennet.ru
