Memori terkelola
Gambaran keseluruhan kolektor sampah

kustomisasi allokator memori

Ketika Anda mengoptimalkan kinerja aplikasi Anda, satu faktor penting untuk dipertimbangkan adalah alokasi memori. Dokumentasi ini memberikan informasi pada tipe allokator memori asli Unity, dan menjelaskan skenario di mana Anda dapat menyesuaikan alokasi untuk meningkatkan kinerja. Hal ini dimaksudkan untuk pengguna dengan pemahaman umum tentang allokator.

Untuk referensi penuh dari jenis allokator dan nilai default mereka, lihat Kustomisasi allokators.

Aplikasi menggunakan aokator memori untuk menyeimbangkan kinerja dan ruang memori yang tersedia. Jika aplikasi memiliki banyak memori cadangan, itu dapat mendukung alokasi yang lebih cepat, berat memori ketika memuat scenesAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
dan bingkai. Namun, jika aplikasi memiliki memori terbatas, perlu menggunakan memori secara efisien, bahkan jika itu berarti menggunakan aokator yang lebih lambat. Untuk membantu Anda mendapatkan kinerja terbaik untuk proyek yang berbeda, Anda dapat menyesuaikan alokasi Unity agar sesuai dengan ukuran dan persyaratan setiap aplikasi.

Unity memiliki lima jenis allokator. Setiap jenis memiliki algoritma yang berbeda untuk alokasi pas ke blok memori, dan karena itu berguna untuk alokasi yang berbeda. Perbedaan penting antara alokasi biasanya bertahan, atau umur alokasi, yang menentukan di mana alokasi harus pergi. Misalnya, alokasi panjang hidup (persistent) pergi ke alokasi heap dan ember, sementara alokasi berumur pendek pergi ke alokasi benang yang aman linier dan TLS.

Tabel ini mencantumkan algoritma dan penggunaan masing-masing jenis allokator:

Allocator type Algorithm Used for
Heap dinamis Dua Tingkat Segregated Fit (TLSF) • Allocator utama
• Gfx allocator
• Hepatitis C Virus (HCV) File cache allocator
• Profiler allocator
• Editor Profiler allocator (hanya Editor)
• Editor Profiler allocator (on Editor only)
Bucket Tetap ukuran lorong bebas kunci Sebagai alokasi bersama untuk alokasi kecil untuk:

• Allocator utama
• Gfx allocator
• Hepatitis C Virus (HCV) Home > Sitemap
• File cache allocator
Benang ganda Redirects alokasi berdasarkan ukuran dan benang ID • Allocator utama
• Gfx allocator
• Hepatitis C Virus (HCV) Home > Sitemap
• File cache allocator
Thread Penyimpanan Lokal (TLS) stack LIFO stack Alokasi sementara
Threadsafe linear Login Login Buffer untuk melewati data ke pekerjaan

Note: Contoh dalam dokumentasi ini menggunakan laporan penggunaan memori yang ditulis ke log ketika Anda menutup pemain atau Editor. Untuk menemukan file log Anda, ikuti petunjuk pada the log files page.

heap dinamis, ember, dan pirator benang ganda

Bagian ini meninjau skenario fungsi dan kustomisasi untuk heap dinamis, ember dan alokasi benang ganda.

Overview

dual thread allocator adalah pembungkus yang menggabungkan allokator dynamic dan bucket. Lebih khusus, menggabungkan:

  • Dua allokator heap dinamis: Insokator bebas kunci untuk benang utama, dan aokator yang dibagikan oleh semua benang lainnya, yang mengunci alokasi dan alokasi. Unity menggunakan alokasi ini untuk alokasi yang terlalu besar untuk alokasi ember. Allocator heap dinamis menggunakan blok memori. Alokasi yang sama dengan atau lebih dari setengah blok pergi ke sistem memori virtual bukan alokasi heap dinamis.

  • A ember allokator untuk alokasi kecil. Jika ember allokator penuh, tumpahan alokasi ke alokasi dinamis allokator.

Allocator heap dinamis

Allocator heap utama adalah allokator heap dinamis. Ini menerapkan algoritma Dua Tingkat Segregated Fit (TLSF) untuk memblokir memori.

Setiap platform memiliki ukuran blok default, yang dapat Anda sesuaikan. Alokasi harus lebih kecil dari setengah blok. Jika alokasi sama dengan atau lebih besar dari setengah blok, terlalu besar untuk alokasi heap dinamis; bukan, Unity menggunakan API memori virtual untuk membuat alokasi.

Contoh laporan penggunaan untuk allokator heap dinamis:

[ALLOC_DEFAULT_MAIN]
Peak usage frame count: [16.0 MB-32.0 MB]: 497 frames, [32.0 MB-64.0 MB]: 1 frames
Requested Block Size 16.0 MB
Peak Block count 2
Peak Allocated memory 54.2 MB
Peak Large allocation bytes 40.2 MB

Dalam contoh ini, ukuran blok TLSF diatur ke 16 MB, dan Unity telah mengalokasikan dua blok. Penggunaan puncak dari allokator adalah 54.2MB. Dari 52.4MB, 40.2MB tidak dialokasikan di blok TLSF, dan bukannya kembali ke memori virtual. Sebagian besar bingkai memiliki 16-32MB memori yang dialokasikan, sementara satu bingkai - kemungkinan bingkai pemuatan - di puncak pada 32-64MB memori.

Jika Anda meningkatkan ukuran blok alokasi besar akan tinggal di landak dinamis daripada jatuh kembali ke memori virtual. Namun, ukuran blok dapat menyebabkan limbah memori, karena blok mungkin tidak sepenuhnya digunakan.

Untuk menghindari menggunakan aokator tipe dan cache, set ukurannya ke 0. Alokasi yang akan menggunakan tipetree dan cache akan jatuh kembali ke alokasi utama. Hal ini dapat menyebabkan lebih banyak fragmentasi, tetapi menyimpan memori blok memori allokators.

Sitemap Home > Sitemap Bucket allocator

Allocator bucket adalah aokator bebas kunci cepat yang melakukan alokasi kecil. Biasanya, ember allocator digunakan sebagai langkah pertama untuk mempercepat alokasi kecil, sebelum mereka pergi ke alokasi heap.

Allocator berhak untuk alokasi. Setiap blok dibagi menjadi subsections 16KB. Ini tidak dapat dikonfigurasi, dan tidak muncul di antarmuka pengguna. Setiap bagian dibagi menjadi allocations. Ukuran alokasi adalah beberapa ukuran tetap yang dikonfigurasi, yang disebut granularity.

Pengaturan contoh berikut menunjukkan proses mengamati blok untuk alokasi:

Shared Bucket Allocator for the Windows, Mac and Linux player
Allocator Bucket Bersama untuk pemain Windows, Mac dan Linux

Dalam pengaturan ini, total ukuran block (Bucket Allocator Block Size) adalah 4MB, dan granularitas alokasi (Bucket Allocator Granularity) adalah 16B. Alokasi pertama adalah 16B, yang kedua adalah 32B (2 * 17), maka 48B, 64B, 80B, 96B, 112B, dan 128B, untuk total delapan ember (Bucket Allocator BucketCount).

Setiap bagian mengandung sejumlah ember yang berbeda. Untuk menghitung jumlah ember di bagian bawah, membagi ukuran penampang (16KB) dengan ukuran granularitas. Contoh:

  • Ketika granularitas alokasi adalah 64B, ember 256 cocok di bagian bawah.
  • Ketika granularitas alokasi adalah 16B, 1,024 ember cocok di bagian bawah.

Bucket allocators menghasilkan laporan penggunaan yang berbeda untuk build development buildMembangun pengembangan termasuk simbol debug dan memungkinkan Profiler. More info
Lihat di Glossary
dan rilis, karena pembangunan build, setiap alokasi memiliki header 40B tambahan. Diagram berikut menunjukkan perbedaan antara pembangunan dan rilis build untuk alokasi 16B dan 64B:

Development and Release builds comparison
Pengembangan dan Rilis membangun perbandingan

Judul juga merupakan alasan laporan allokator penuh setelah mengalokasikan hanya 2MB dari 4MBnya:

[ALLOC_BUCKET]
      Large Block size 4.0 MB
      Used Block count 1
      Peak Allocated bytes 2.0 MB
      Failed Allocations. Bucket layout:
        16B: 64 Subsections = 18724 buckets. Failed count: 3889
        32B: 17 Subsections = 3868 buckets. Failed count: 169583
        48B: 31 Subsections = 5771 buckets. Failed count: 39674
        64B: 28 Subsections = 4411 buckets. Failed count: 9981
        80B: 17 Subsections = 2321 buckets. Failed count: 14299
        96B: 6 Subsections = 722 buckets. Failed count: 9384
        112B: 44 Subsections = 4742 buckets. Failed count: 5909
        128B: 49 Subsections = 4778 buckets. Failed count: 8715

Dalam rilis build untuk proyek yang sama, ukuran blok allocator cukup:

[ALLOC_BUCKET]
      Large Block size 4.0 MB
      Used Block count 1
      Peak Allocated bytes 3.3 MB

Jika ember allokator penuh, alokasi jatuh kembali ke alokasi lain. Laporan penggunaan menampilkan statistik penggunaan, termasuk berapa banyak alokasi gagal. Jika laporan menampilkan jumlah gagal yang meningkatkan linear, kemungkinan alokasi gagal terjadi ketika menghitung bingkai, bukan beban. Alokasi Fallback bukan masalah untuk beban adegan, tetapi mereka dapat mempengaruhi kinerja jika mereka terjadi ketika menghitung bingkai.

Untuk mencegah alokasi fallback ini, meningkatkan ukuran blok, dan membatasi ukuran blok baru untuk mencocokkan penggunaan puncak bingkai, daripada penggunaan puncak beban adegan. Hal ini mencegah blok menjadi begitu besar yang cadangan banyak memori yang kemudian tidak tersedia pada waktu runtime.

Tip: Allocators 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
berbagi contoh a ember allokator. Anda dapat menyesuaikan instance bersama ini di Allocator Bucket Profiler.

Dual benang allokator

Allocator benang ganda membungkus alokasi ember bersama untuk alokasi kecil, dan dua kasus allokator heap dinamis: alokasi bebas kunci untuk benang utama, dan alokasi yang dibagikan oleh semua benang lainnya, tetapi kunci di alokasi dan alokasi.

Anda dapat menyesuaikan ukuran blok dari dua allokator heap dinamis:

Main Allocator, with a custom value for Shared Thread Block Size
Allocator Utama, dengan nilai kustom untuk Ukuran Blok Thread Bersama

Laporan penggunaan berisi informasi untuk semua tiga bagian dari allokator. Contoh:

[ALLOC_DEFAULT] Dual Thread Allocator
  Peak main deferred allocation count 135
    [ALLOC_BUCKET]
      Large Block size 4.0 MB
      Used Block count 1
      Peak Allocated bytes 3.3 MB
    [ALLOC_DEFAULT_MAIN]
      Peak usage frame count: [16.0 MB-32.0 MB]: 8283 frames, [32.0 MB-64.0 MB]: 1 frames
      Requested Block Size 16.0 MB
      Peak Block count 2
      Peak Allocated memory 53.3 MB
      Peak Large allocation bytes 40.2 MB
    [ALLOC_DEFAULT_THREAD]
      Peak usage frame count: [64.0 MB-128.0 MB]: 8284 frames
      Requested Block Size 16.0 MB
      Peak Block count 2
      Peak Allocated memory 78.3 MB
      Peak Large allocation bytes 47.3 MB

Note: Peak main deferred allocation count adalah jumlah item dalam antrian penghapusan. Benang utama harus menghapus alokasi yang dibuat. Jika benang lain menghapus alokasi, alokasi ditambahkan ke antrian. Alokasi menunggu di antrian untuk benang utama untuk menghapusnya. Kemudian dihitung sebagai alokasi deferred.

TLS dan threadsafe linear allokators

Bagian ini menjelaskan skenario fungsi dan kustomisasi untuk Thread Local Storage (TLS) dan allokator linier threadsafe.

Overview

Unity memiliki dua allokators yang bekerja di luar alokasi benang ganda:

  • Thread Penyimpanan Lokal (TLS): Allocator berbasis stack untuk alokasi sementara yang cepat. Ini adalah aokator tercepat karena memiliki hampir tidak ada overhead. Hal ini juga mencegah fragmentasi. Ini terakhir di, pertama di luar (LIFO) berbasis.

  • Threadsafe linier: Pertama In, Pertama Out (FIFO) bulat-robin allokator yang sementara alokasi pekerjaan untuk melewati memori berumur pendek antara benang pekerja).

Thread Penyimpanan Lokal (TLS) stack allocator

Setiap benang menggunakan alokasi tumpukan cepat sendiri untuk alokasi sementara. Alokasi ini sangat cepat, dengan umur kurang dari bingkai.

Ukuran blok default untuk aokator sementara adalah 4MB untuk platform dan 16MB untuk Editor Unity. Anda dapat menyesuaikan nilai-nilai ini.

Note: Jika penggunaan allokator melebihi ukuran blok yang dikonfigurasi, Unity meningkatkan ukuran blok. Batas kenaikan ini dua kali ukuran aslinya.

Main Thread Block Size custom value in the Fast Per Thread Temporary Allocators
Ukuran Blok Thread Utama nilai kustom dalam Fast Per Thread Temporary Allocators

Jika alokasi tumpukan benang penuh, alokasi jatuh kembali ke threadsafe linear pekerjaan allokator. Beberapa alokasi overflow halus: 1 hingga 10 dalam bingkai, atau beberapa ratus selama beban. Namun, jika angka tumbuh pada setiap bingkai, Anda dapat meningkatkan ukuran blok.

Informasi dalam laporan penggunaan dapat membantu Anda memilih ukuran blok yang sesuai untuk aplikasi Anda. Misalnya, dalam laporan penggunaan benang utama berikut, puncak beban di 2.7MB, tetapi bingkai yang tersisa di bawah 64KB. Anda dapat mengurangi ukuran blok dari 4MB ke 64KB dan memungkinkan bingkai pemuatan untuk tumpahkan di atas alokasi:

[ALLOC_TEMP_TLS] TLS Allocator
  StackAllocators :
    [ALLOC_TEMP_MAIN]
      Peak usage frame count: [16.0 KB-32.0 KB]: 802 frames, [32.0 KB-64.0 KB]: 424 frames, [2.0 MB-4.0 MB]: 1 frames
      Initial Block Size 4.0 MB
      Current Block Size 4.0 MB
      Peak Allocated Bytes 2.7 MB
      Overflow Count 0
    [ALLOC_TEMP_Job.Worker 18]

Dalam contoh kedua ini, benang pekerja tidak digunakan untuk alokasi sementara besar. Untuk menghemat memori, Anda dapat mengurangi ukuran blok pekerja ke 32KB. Ini terutama berguna pada mesin multi-core, di mana setiap benang pekerja memiliki tumpukan sendiri:

[ALLOC_TEMP_Job.Worker 14]
      Initial Block Size 256.0 KB
      Current Block Size 256.0 KB
      Peak Allocated Bytes 18.6 KB
      Overflow Count 0

Threadsafe linear allocator

Benang pekerja di Unity menggunakan algoritma pertama-in-first-out (FIFO) untuk cepat, alokasi bebas kunci dari buffer kerja untuk pekerjaan. Pekerjaan membuang penyangga saat dilakukan.

Blok allokator allokates memori ini, kemudian linear mengalokasikan memori dalam blok tersebut. Blok yang tersedia diadakan di kolam renang. Ketika satu blok penuh, allocator mengambil blok baru dari kolam renang. Ketika allokator tidak perlu lagi memori di blok, membersihkan blok, dan blok kembali ke kolam blok yang tersedia. Penting untuk membersihkan alokasi dengan cepat untuk membuat blok yang tersedia lagi, jadi pekerjaan tidak harus tinggal dialokasikan untuk lebih dari beberapa bingkai.

Anda dapat menyesuaikan ukuran blok. Allocator mengalokasikan hingga 64 blok, sesuai kebutuhan.

Default value for Fast Thread Shared Temporary Allocators for the Editor
Nilai default untuk Fast Thread Shared Temporary Allocators untuk Editor

Jika semua blok digunakan, atau alokasi terlalu besar untuk blok, alokasi jatuh kembali ke alokasi utama, yang jauh lebih lambat daripada alokasi pekerjaan. Beberapa alokasi aliran halus: 1 hingga 10 dalam bingkai, atau beberapa ratus, terutama selama beban. Jika hitungan overflow tumbuh dengan setiap bingkai, Anda dapat meningkatkan ukuran blok untuk menghindari alokasi fallback. Namun, jika Anda meningkatkan ukuran blok terlalu banyak (misalnya, untuk mencocokkan penggunaan puncak dalam acara seperti pemuatan adegan), Anda mungkin meninggalkan banyak memori yang tidak tersedia selama bermain.

Contoh:

[ALLOC_TEMP_JOB_4_FRAMES (JobTemp)]
  Initial Block Size 0.5 MB
  Used Block Count 64
  Overflow Count (too large) 0
  Overflow Count (full) 50408

Dalam laporan penggunaan ini, ukuran blok 0,5MB terlalu kecil untuk mengakomodasi memori pekerjaan yang diperlukan aplikasi, dan alokasi penuh menyebabkan sejumlah besar alokasi untuk meluap.

Untuk memeriksa apakah alur bingkai build Anda cukup, jalankan untuk waktu singkat dan kemudian untuk waktu yang lebih lama. Jika jumlah overflow tetap stabil, overflow adalah tanda air tinggi yang terjadi selama beban. Jika jumlah overflow meningkat dengan jangka panjang, build memproses overflow per-frame. Dalam kedua kasus, Anda dapat meningkatkan blokisasi untuk mengurangi overflow, tetapi overflow kurang penting selama beban dari per bingkai.

Sitemap Kustomisasi allokators Customizing allocators

Untuk menyesuaikan pengaturan allokator, lakukan salah satu berikut:

  • Gunakan Editor:
    1. Pilih Pengaturan Proyek > Pengaturan Memori.
    2. Pilih ikon kunci di sebelah nilai yang ingin Anda edit.
Project Settings > Memory Settings, showing a selection of Player memory settings
Pengaturan Proyek > Pengaturan Memori, menunjukkan pilihan pengaturan memori Pemain
  • Gunakan argumen baris perintah. Untuk menemukan nama parameter allokator yang ingin Anda ubah, periksa daftar pengaturan allokator Editor dan pemain cetak ketika mereka memulai. Sebagai contoh, untuk mengubah ukuran blok alokasi heap utama, gunakan -memorysetup-main-allocator-block-size=<new_value>

Nama parameter allokator dan nilai default mereka:

Allocator Description Parameter name Default value
Alokator Utama Penggunaan allokators Unity untuk sebagian besar alokasi.
Alokator Utama Penggunaan Unity allokator utama untuk sebagian besar alokasi.
Ukuran Blok Thread Utama Ukuran blok dari alokasi benang utama khusus. memorysetup-main-allocator-block-size 16777216
Ukuran Blok Thread Bersama Ukuran blok dari allokator benang bersama. memorysetup-thread-allocator-block-size 16777216
Gfx Allocator Penggunaan Unity allocator untuk alokasi CPU yang terkait dengan sistem Gfx.
Ukuran Blok Thread Utama Ukuran blok dari benang utama khusus gfx allocator. memorysetup-gfx-main-allocator-block-size 16777216
Ukuran Blok Thread Bersama Ukuran blok dari allocator benang bersama. memorysetup-gfx-thread-allocator-block-size 16777216
Other Allocators
Ukuran Blok Cache File Cache file memiliki aokator sendiri untuk menghindari fragmentasi. Ini adalah ukuran bloknya. memorysetup-cache-allocator-block-size 4194304
Jenis Ukuran Blok Pohon Jenis pohon memiliki aokator mereka sendiri untuk menghindari fragmentasi karena banyak alokasi kecil. Ini adalah ukuran bloknya. memorysetup-typetree-allocator-block-size 2097152
Allocator Bucket Bersama Alokator bucket yang dibagikan antara aokator utama.
Home > Sitemap Ukuran langkah untuk bucket di allokator bersama. memorysetup-bucket-allocator-granularity 16
Home > Sitemap Jumlah ukuran bucket. memorysetup-bucket-allocator-bucket-count 8
Ukuran Blok Allocator Bucket Ukuran blok memori yang digunakan untuk ember. memorysetup-bucket-allocator-block-size Editor: 8388608
Player: 4194304
Bucket Allocator Blok Count Jumlah blok maksimum untuk dialokasikan. memorysetup-bucket-allocator-block-count Editor: 8
Player: 1
Cepat Per Thread Sementara Allocators The Thread Local Storage (TLS) allocator yang menangani alokasi yang sangat berumur pendek.
Ukuran Blok Thread Utama Ukuran awal untuk tumpukan benang utama. memorysetup-temp-allocator-size-main Editor: 16777216
Player: 4194304
Ukuran Blok Pekerja Pekerjaan Ukuran setiap pekerja pekerjaan di sistem kerja Unity. memorysetup-temp-allocator-size-job-worker E262144
Ukuran Blok Pekerja Latar Belakang Ukuran untuk setiap pekerja latar belakang. memorysetup-temp-allocator-size-background-worker 32768
Ukuran Blok Preload Ukuran tumpukan manajer preload. memorysetup-temp-allocator-size-preload-manager Editor: 33554432
Player: 262144
Ukuran Blok Pekerja Audio Setiap ukuran tumpukan benang pekerja audio. memorysetup-temp-allocator-size-audio-worker 65536
Ukuran Blok Worker Cloud Benang pekerja cloud ukuran tumpukan. memorysetup-temp-allocator-size-cloud-worker 32768
Gfx Thread Blocksize Ukuran tumpukan benang render utama. memorysetup-temp-allocator-size-gfx 262144
GI Baking Blocksize Setiap ukuran tumpukan benang pekerja GI. memorysetup-temp-allocator-size-gi-baking-worker 262144
NavMeshSebuah mesh yang Unity menghasilkan perkiraan daerah dan hambatan yang dapat berjalan di lingkungan Anda untuk mencari jalan dan navigasi yang dikendalikan AI. More info
Lihat di Glossary
Worker Block Size
Nav meshGrafik utama primitif Unity. Mesh membuat sebagian besar dunia 3D Anda. Unity mendukung mesh poligon triangulat atau Quadrangulasi. Nurbs, Nurms, permukaan Subdiv harus dikonversi ke poligon. More info
Lihat di Glossary
lembar kerja ukuran tumpukan.
memorysetup-temp-allocator-size-nav-mesh-worker 65536
Cepat Thread Bersama Sementara Allocators Alokator linier cepat untuk alokasi hidup pendek dibagi antara benang.
Ukuran Blok Allocator Pekerjaan Round robin linear thread allocator Unity terutama digunakan untuk pekerjaan pekerja benang. memorysetup-job-temp-allocator-block-size 2097152
Latar Belakang Job Allocator Block Ukuran Alokator linier untuk pekerja latar belakang yang memungkinkan alokasi hidup lebih lama. memorysetup-job-temp-allocator-block-size-background 21048576
Ukuran Blok Allocator Job pada platform memori rendah Platform dengan kurang dari memori 2GB menggunakan ukuran ini untuk pekerja kerja dan pekerjaan latar belakang. memorysetup-job-temp-allocator-reduction-small-platforms 262144
Profiler Allocators Allocators yang Unity menggunakan secara eksklusif untuk Profiler sehingga mereka tidak mengganggu pola alokasi aplikasi.
Profiler Blok Ukuran Ukuran blok untuk bagian utama dari Profiler. memorysetup-profiler-allocator-block-size 16777216
Editor Profiler Blok Ukuran Ukuran blok untuk bagian Editor dari Profiler. Ini tidak hadir pada pemain. memorysetup-profiler-editor-allocator-block-size 1048576
Allocator Bucket Profiler Allocator bucket bersama untuk Profiler dan editor Profiler allocators.

Tidak ada di platform memori rendah.
Home > Sitemap Ukuran langkah untuk bucket di allokator bersama. memorysetup-profiler-bucket-allocator-granularity 16
Home > Sitemap Jumlah ukuran bucket. Misalnya, jika nilainya 4, ukurannya 16, 32, 48 dan 64. memorysetup-profiler-bucket-allocator-bucket-count 8
Ukuran Blok Allocator Bucket Ukuran blok memori yang digunakan untuk ember. memorysetup-profiler-bucket-allocator-block-size Editor: 33554432
Player: 4194304
Bucket Allocator Blok Count Jumlah blok maksimum untuk dialokasikan. memorysetup-profiler-bucket-allocator-block-count Editor: 8
Player: 1

Tip: Untuk memastikan pengaturan Anda meningkatkan kinerja, profil aplikasi sebelum dan sesudah membuat perubahan. Lihat Profiler overview page untuk informasi lebih lanjut. Anda juga dapat memeriksa laporan penggunaan memori. Mereka tersedia dalam log ketika Anda menutup pemain atau Editor. Untuk menemukan file log Anda, ikuti petunjuk pada log files page.

Menyimpan dan membaca pengaturan

Pengaturan allokator toko unity di MemorySettings.asset, yang mengisi file boot.config dengan pengaturan yang dimodifikasi pada waktu build. Ini berarti pengaturan baru mengambil efek pada setiap build.

Di Editor, boot.config berada di folder ProjectSettings. Ini diperbarui setiap kali impor Unity atau perubahan MemorySettings.asset. Nilai baru untuk Editor hanya mengambil efek pada startup Editor berikutnya.

Memori terkelola
Gambaran keseluruhan kolektor sampah