Unity mengkonfigurasi urusan benang dan prioritas benang berdasarkan topologi CPU perangkat. Konfigurasi benang default Unity bekerja dengan baik untuk sebagian besar proyek, tetapi dalam beberapa situasi, Anda mungkin ingin mengubah konfigurasi benang (misalnya, jika Anda ingin mengoptimalkan perangkat tertentu, atau jika aplikasi Anda bertujuan untuk konsumsi daya rendah dan tidak memerlukan tingkat bingkai tinggi).
Important: Gunakan pengaturan default Unity bila memungkinkan. Jika Anda mengubah konfigurasi benang untuk mengoptimalkan perangkat tertentu, setiap perubahan yang Anda buat dapat memiliki dampak kinerja negatif pada perangkat lain atau bahkan perangkat yang sama dalam versi sistem operasi masa depan.
Persentase dari kontrol benang yang inti CPU benang harus berjalan. Untuk perangkat Android, inti biasanya sesuai dengan dua kategori:
Important: Untuk aplikasi khas yang menargetkan berbagai perangkat Android, jangan mengikat benang ke inti tertentu.
Unity biasanya menerima kapasitas dan tugas besar / botol untuk setiap inti CPU dari sistem operasi perangkat. Untuk versi sistem operasi yang lebih tua, informasi ini tidak selalu tersedia. Dalam hal ini, Unity menghitung kapasitas inti CPU dan menggunakan informasi tersebut untuk menetapkan setiap inti baik besar atau sedikit. Untuk menetapkan inti, Unity membandingkan kapasitas CPU setiap inti ke ambang. Secara default, intinya besar jika memiliki setidaknya dua kali lipat kapasitas CPU inti paling lambat, dan sedikit sebaliknya.
Untuk lebih banyak kontrol atas inti Unity menetapkan besar atau sedikit, Anda dapat memberikan ambang kustom. Untuk memberikan ambang kustom, gunakan argumen baris perintah -platform-android-cpucapacity-threshold [value]
dengan nilai antara 0 dan 1024 di mana 0 mewakili inti kapasitas terendah dan 1024 mewakili inti kapasitas tertinggi. Misalnya, nilai 870
, yang sekitar 85% dari 1024, berarti bahwa inti besar jika kapasitas CPU berada di atas 15% dari mereka di chip. Untuk informasi tentang cara menambahkan argumen garis perintah start-up ke Unity di perangkat Android, lihat Menentukan argumen startup Unity dari file UnityPlayerActivity kustom.
Note: Unity selalu mengkategorikan inti baik besar atau sedikit. Untuk beberapa topologi CPU yang kompleks (misalnya, mereka yang memiliki core menengah), Unity masih mengkategorikan intinya sebagai besar atau sedikit.
Unity menyediakan alias berikut yang dapat Anda gunakan sebagai nilai urusan benang:
any
: Memungkinkan benang untuk menjalankan inti.little
: Memungkinkan benang untuk menjalankan inti kecil.big
: Memungkinkan benang untuk menjalankan inti besar.Anda juga dapat menggunakan nilai heksadecimal dan binary untuk menentukan urusan benang. Dalam biner, indeks sedikit referensi inti CPU tertentu. Biasanya, inti kecil mulai indeks 0 dan inti besar datang langsung setelah mereka.
Misalnya, jika CPU mengandung empat core kecil dan empat inti besar:
0b11110000
dan nilai heksadecimal 0xf0
memungkinkan benang untuk menjalankan inti besar.0b1111
dan nilai heksadecimal 0xf
memungkinkan benang untuk menjalankan inti kecil.Prioritas dari kontrol benang bagaimana sistem operasi perangkat mengalokasikan waktu CPU ke benang. Sistem operasi mengalokasikan lebih banyak waktu CPU untuk benang dengan kerabat prioritas yang lebih tinggi ke benang dengan prioritas yang lebih rendah.
Nilai prioritas benang yang dapat Anda gunakan dalam Unity berada di kisaran -20 hingga 19, di mana -20 menunjukkan prioritas tertinggi dan 19 menunjukkan prioritas terendah.
Bagian ini berisi informasi tentang benang Unity Anda dapat mengkonfigurasi, dan argumen baris perintah yang Anda gunakan untuk mengkonfigurasinya.
Untuk informasi tentang cara menambahkan argumen baris perintah startup ke Unity pada perangkat Android, lihat Menentukan argumen startup Unity dari file UnityPlayerActivity kustom.
Benang utama Unity mengeksekusi semua scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary dan biasanya memiliki beban CPU yang tinggi. argumen baris perintah yang mempengaruhi benang ini adalah:
-platform-android-unitymain-priority [value]
di mana [value]
adalah priority dari benang.-platform-android-unitymain-affinity [value]
di mana [value]
adalah affinity dari benang.Benang pekerja Unity mengeksekusi pekerjaan dari mesin inti dan mereka aplikasi Anda dikirim melalui Sistem Pekerjaan C#. argumen baris perintah yang mempengaruhi benang ini adalah:
-platform-android-jobworker-priority [value]
dimana [value]
adalah priority dari benang.-platform-android-jobworker-affinity [value] [value1 value2 value3]
di mana [value]
adalah affinity dari benang dan [value1 value2 value3]
adalah nilai opsional yang dapat Anda gunakan untuk menentukan urusan benang pekerja per benang. Jika Anda hanya menetapkan nilai tunggal, Unity menggunakan nilai yang sama untuk semua benang pekerja. Anda dapat menggunakan ’-job-worker-count untuk menentukan jumlah benang pekerja.Benang render Unity berinteraksi dengan API Grafik jika proyek Anda menggunakan rendering multithreaded.
-platform-android-gfxdeviceworker-priority [value]
di mana [value]
adalah priority dari benang.-platform-android-gfxdeviceworker-affinity [value]
di mana [value]
adalah affinity dari benang.Note: Jika Anda menggunakan benang GraphicsJobs, JobWorker juga berinteraksi dengan API Graphics.