Optimasi khusus
Arus kerja aset

Aset memuat metrik

Gunakan kelas AsyncReadManagerMetrics untuk memantau kinerja pemuatan aset runtime dan pembacaan file. Data catatan kelas ini tentang semua operasi membaca file yang dikelola oleh AsyncReadManager.

Mesin Unity menggunakan AsyncReadManager untuk membaca sebagian besar file pada runtime. File yang dimuat dengan AsyncReadManager termasuk AssetBundles, Alamat dan Sumber Daya. Selain itu, Anda dapat memuat file dari 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
menggunakan AsyncReadManager.Read.

Kelas AsyncReadManagerMetrics memungkinkan Anda untuk mengaktifkan pengumpulan metrik dan mengambil data metrik yang direkam. Anda juga dapat menyaring dan meringkas data yang direkam untuk membantu analisis Anda. Informasi metrik ini dapat membantu Anda mengidentifikasi area masalah yang melibatkan pemuatan aset serta mengukur dampak bahwa perubahan Anda memiliki kinerja pemuatan aset.

Kelas AsyncReadManagerMetrics tersedia dalam only. Anda harus menjaga panggilan apapun ke API AsyncReadManagerMetrics dalam #if preprocessor directive menggunakan simbol development buildsMembangun pengembangan termasuk simbol debug dan memungkinkan Profiler. More info
Lihat di Glossary
. Simbol ENABLE_PROFILER hanya didefinisikan untuk membangun pembangunan, sehingga ini memungkinkan skrip Anda untuk mengkompilasi dalam membangun di mana metrik tidak tersedia. Untuk ke belakang kompatibilitas, Anda juga dapat menggunakan simbol ENABLE_PROFILER untuk menghapus kode metrik dari versi sebelumnya Unity. Contoh:UNITY_2020_2_OR_NEWER symbol to remove the metrics code from earlier versions of Unity. For example:

#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
    AsyncReadManagerMetrics.StartCollectingMetrics();
#endif

Mengaktifkan koleksi metrik

Anda harus mengaktifkan pengumpulan metrik sebelum data apa pun direkam. Koleksi metrik yang dapat diaktifkan dengan salah satu metode berikut:

Note: Anda dapat melewati -enable-file-read-metrics ketika meluncurkan aplikasi Editor Unity untuk mengaktifkan koleksi pada memasukkan mode Play. Namun, Editor memuat beberapa kategori aset, seperti tekstur, itu sendiri dan tidak memuat ulang mereka ketika Anda memasukkan Playmode. Untuk mendapatkan gambar penuh metrik IO file Anda, Anda harus mengumpulkan data dari membangun pengembangan aplikasi Anda.

Mendapatkan data metrik

Dapatkan metrik yang dikumpulkan oleh kelas AsyncReadManagerMetrics dengan memanggil GetMetrics. Masukkan Login Login ke fungsi ini untuk menentukan apakah atau tidak menghapus metrik setelah pengambilan. Jelas metrik untuk menghapus semua selesai (termasuk dibatalkan dan gagal) membaca dari metrik yang tersimpan. Jelas tidak mempengaruhi operasi antrian atau proses; Anda dapat mengakses metrik untuk operasi yang belum selesai dengan memanggil GetMetrics lagi setelah selesai. Dengan menghapus metrik secara teratur, Anda dapat menghindari membaca data yang sama dan juga mengurangi overhead data sistem.

#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
    AsyncReadManagerRequestMetric[] metrics 
        = AsyncReadManagerMetrics.GetMetrics(AsyncReadManagerMetrics.Flags.ClearOnRead);
#endif

Jika memungkinkan, data metrik termasuk informasi konteks tentang operasi yang dibaca. Informasi ini termasuk AssetLoadingSubsystem yang meminta baca, AssetName, dan AssetTypeID. Ketika AsyncReadManager tidak memiliki akses ke informasi ini, nilai untuk bidang metrik ini adalah Other, kosong, dan nol, masing-masing.

Sitemap Aset TypeIDs saat ini diketahui didukung ditampilkan di tabel di bawah ini. Untuk TypeID lain yang mungkin muncul, silakan lihat Note:.ID Kelas YAML Login.

TypeID Nama Jenis
28 Tekstur2D
117 Tekstur3D
89 CubeMapKoleksi enam tekstur persegi yang dapat mewakili refleksi di lingkungan atau skybox yang digambar di balik geometri Anda. Enam kotak membentuk wajah kubus imajiner yang mengelilingi objek; setiap wajah mewakili pandangan di sepanjang arah sumbu dunia (hingga, kiri, kanan, ke depan dan belakang). More info
Lihat di Glossary
43 g Mesh

Getting summarized data

Anda bisa mendapatkan ringkasan metrik AsyncReadManager dengan metode berikut:

Contoh:

#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
    AsyncReadManagerSummaryMetrics summaryOfMetrics 
        = AsyncReadManagerMetrics.GetCurrentSummaryMetrics(AsyncReadManagerMetrics.Flags.ClearOnRead);
#endif

Or:

#if ENABLE_PROFILER && UNITY_2020_2_OR_NEWER
    AsyncReadManagerRequestMetric[] metrics 
        = AsyncReadManagerMetrics.GetMetrics(AsyncReadManagerMetrics.Flags.ClearOnRead);
    AsyncReadManagerSummaryMetrics summaryOfMetrics 
        = AsyncReadManagerMetrics.GetSummaryOfMetrics(metrics);
#endif

Data ringkasan untuk metrik termasuk statistik seperti:

  • Bandwidth rata-rata
  • Ukuran membaca rata-rata
  • Jenis aset dengan waktu beban terpanjang
  • Jumlah bacaan
  • Jumlah permintaan
  • Total byte membaca

(Lihat AsyncReadManagerSummaryMetrics untuk daftar lengkap.)

Secara default, statistik yang dirangkum mencakup semua operasi yang membaca, termasuk mereka yang diqueued atau in-progress. Anda dapat menggunakan filter untuk membatasi ringkasan terhadap operasi yang Anda minati secara khusus. Misalnya, Anda dapat menggunakan filter untuk membatasi statistik yang dibahas untuk menyelesaikan operasi membaca untuk aset tekstur.

Sitemap Menghitung statistik ringkasan memerlukan sumber daya pemrosesan. Untuk mencegah perhitungan ini dari mengubah pengukuran yang Anda rekaman, Anda dapat mengumpulkan metrik pertama dan hanya mendapatkan ringkasan setelah operasi Anda menganalisis telah selesai.Note: Calculating the summary statistics does require processing resources. To prevent these calculations from changing the measurements you are recording, you can collect the metrics first and only get the summary after the operations you are analyzing have finished.

Summary filters

Gunakan AsyncReadManagerMetricsFilters dengan metode ini untuk menentukan jenis data untuk meringkas. Setiap metrik yang tidak cocok filter dikecualikan dari ringkasan. Anda dapat menyaring dengan kategori berikut:

Anda dapat mengatur beberapa kategori untuk filter yang sama. Operasi yang membaca harus sesuai dengan semua kategori untuk metrik operasi yang disertakan dalam ringkasan. Misalnya, Anda dapat menentukan nilai-nilai untuk ProcessingState dan Subsystem dari filter untuk meringkas hanya operasi di negara-negara pemrosesan yang ditunjuk yang diprakarsai oleh subsytem yang ditunjuk.

Anda juga dapat menentukan beberapa nilai untuk kategori. Dalam hal ini, operasi membaca dapat mencocokkan nilai apa pun yang Anda tentukan untuk kategori metriknya untuk dimasukkan dalam ringkasan. Misalnya, Anda dapat menentukan kategori 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
dan TextureGambar yang digunakan ketika membuat elemen GameObject, Sprite, atau UI. Tekstur sering diterapkan pada permukaan mesh untuk memberikan detail visual. More info
Lihat di Glossary
untuk kategori Subsystem untuk meringkas operasi untuk aset Mesh dan Tekstur.

Optimasi khusus
Arus kerja aset