Unity menggunakan memori kolektor sampah untuk reklamasi dari objek yang aplikasi Anda dan Unity tidak lagi digunakan. Ketika skrip mencoba untuk membuat alokasi di heap yang berhasil tetapi tidak ada cukup memori heap gratis untuk mengakomodasi alokasi, Unity menjalankan kolektor sampah. Ketika kolektor sampah berjalan, ia memeriksa semua objek di the heap, dan tanda untuk menghapus benda apa pun yang aplikasi Anda tidak lagi referensi. Unity kemudian menghapus benda yang tidak disukai, yang membebaskan memori.
Pengumpul sampah menangani permintaan berikutnya dengan cara yang sama sampai tidak ada area bebas yang cukup besar untuk mengalokasikan ukuran blok yang diperlukan. Dalam situasi ini, tidak mungkin bahwa semua memori yang dialokasikan masih digunakan. Unity's scripting backendsKerangka kerja yang skrip di Unity. Unity mendukung tiga backend scripting yang berbeda tergantung pada platform target: Mono, .NET dan IL2CPP. Platform Windows Universal, namun hanya mendukung dua: .NET dan IL2CPP. More info
Lihat di Glossary hanya dapat mengakses item referensi di heap selama masih ada variabel referensi yang dapat menemukannya. Jika semua referensi ke blok memori hilang (jika variabel referensi telah ditetapkan atau jika mereka variabel lokal yang sekarang keluar dari lingkup) maka kolektor garbage dapat menyadari memori yang ditempati.
Untuk menentukan blok heap mana yang tidak lagi digunakan, pengumpul sampah mencari melalui semua variabel referensi aktif dan menandai blok memori yang mereka lihat sebagai "hidup." Pada akhir pencarian, kolektor sampah menganggap ruang antara blok "hidup" kosong dan menandai mereka untuk digunakan untuk alokasi berikutnya. Proses penempatan dan membebaskan memori yang tidak digunakan disebut garbage collection (GC).
Sitemap Pengumpul sampah bekerja berbeda dalam Note:. Untuk informasi lebih lanjut, lihat WebGLLogin API yang membuat grafis 2D dan 3D di browser web. Opsi build Unity WebGL memungkinkan Unity untuk mempublikasikan konten sebagai program JavaScript yang menggunakan teknologi HTML5 dan WebGL rendering API untuk menjalankan konten Unity di browser web. More info
Lihat di Glossary.Pertimbangan pengumpulan sampah.
Dalam Unity, kolektor sampah memiliki mode berikut:
Unity memiliki alat berikut untuk melacak alokasi memori:
Dalam modul penggunaan CPU, Hierarchy view mengandung kolom GC Alloc. Kolom ini menampilkan jumlah byte yang dialokasikan Unity pada heap yang dikelola dalam bingkai tertentu. Ini juga menampilkan jumlah memori bahwa kolektor sampah berhasil, dan termasuk memori yang Unity mungkin telah dialokasikan dan digunakan kembali dalam bingkai berikutnya. Ini berarti bahwa jumlah GC Alloc atas semua bingkai tidak total berapa banyak memori yang berhasil tumbuh dalam waktu itu.
Untuk mendapatkan informasi yang paling akurat, Anda harus selalu profil aplikasi Anda pada development buildMembangun pengembangan termasuk simbol debug dan memungkinkan Profiler. More info
Lihat di Glossary pada platform target atau perangkat yang ingin Anda bangun. Editor Unity bekerja dengan cara yang berbeda untuk membangun, dan ini mempengaruhi data profil; misalnya, metode GetComponent
selalu mengalokasikan memori ketika dieksekusi dalam Editor, tetapi tidak dalam proyek yang dibangun.
Anda juga dapat menggunakan Call Stacks mode di ProfilerJendela yang membantu Anda untuk mengoptimalkan permainan Anda. Ini menunjukkan berapa banyak waktu yang dihabiskan di berbagai bidang permainan Anda. Sebagai contoh, dapat melaporkan persentase waktu yang dihabiskan rendering, aimating, atau dalam logika permainan Anda. More info
Lihat di Glossary untuk menentukan metode mana alokasi terjadi. Anda dapat mengaktifkan jejak tumpukan panggilan penuh untuk sampel GC.Alloc, yang kemudian membantu Anda menentukan di mana dan ketika kolektor sampah berjalan.