Login Database
Modul Profiler Fisika

Modul Profiler Memori

Ada dua cara penggunaan memori menganalisis dalam aplikasi Anda di Unity:

  • Memory 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
    module: Modul Profiler bawaan yang memberi Anda informasi dasar di mana aplikasi Anda menggunakan memori.
  • Memory Profiler package: Paket Unity yang dapat Anda tambahkan ke proyek Anda. Ini menambahkan jendela Profiler Memori tambahan ke Editor Unity, yang kemudian Anda gunakan untuk menganalisis penggunaan memori dalam aplikasi Anda bahkan lebih detail. Anda dapat menyimpan dan membandingkan snapshot untuk menemukan kebocoran memori, atau melihat tata letak memori untuk menemukan masalah fragmentasi memori.

Halaman ini mencakup informasi pada modul Profiler Memori bawaan. Untuk informasi lebih lanjut tentang paket profiler Memori, lihat .

Modul Memory Profileer memvisualisasikan kontra yang mewakili total memori yang dialokasikan dalam aplikasi Anda. Anda dapat menggunakan modul memori untuk melihat informasi seperti jumlah benda yang dimuat, dan memori yang mereka ambil dalam total per kategori. Anda juga dapat melihat jumlah bingkai Alokasi GC per Profiler.

Profil memori di Editor

Ketika Anda menprofilkan aplikasi Anda di Editor, daripada membangun dan memprofilkan aplikasi Anda pada perangkat target, data profil dalam modul Memory Profileer lebih besar dari ketika Anda menjalankan aplikasi Anda di platform rilis. Ini karena Editor Unity menggunakan objek spesifik yang mengambil memori, dan jendela Editor itu sendiri menggunakan memori ekstra.

Juga, karena Unity tidak dapat secara bersih memisahkan memori bahwa Profiler sendiri mengambil dari memori mode Play, memori bahwa penggunaan Profiler ditampilkan di jendela Profiler. Untuk mengingatkan Anda tentang ini, tampilan peringatan di bagian atas rincian modul Memory Profileer pane setiap kali Anda memiliki target Profiler ditetapkan ke Play Mode atau Editor. Untuk jumlah yang lebih tepat dan penggunaan memori untuk aplikasi Anda, Anda harus memberi profil aplikasi Anda pada perangkat target dan sistem operasi Anda berniat untuk dijalankan. Untuk informasi lebih lanjut, lihat dokumentasi pada Profil aplikasi Anda.

Kategori grafik

Modul Memory Profileer dibagi menjadi kategori yang menampilkan informasi rinci di mana aplikasi Anda menghabiskan memori. Anda juga dapat mengklik legenda berwarna kategori untuk memotong tampilannya.

Category Description
Total Allocated Total memori aplikasi Anda telah digunakan.
Texture Memory Berapa banyak memori TexturesGambar yang digunakan ketika membuat elemen GameObject, Sprite, atau UI. Tekstur sering diterapkan pada permukaan mesh untuk memberikan detail visual. More info
Lihat di Glossary
dalam aplikasi Anda telah digunakan.
MeshThe main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info
See in Glossary
Memory
Berapa banyak memori Meshes dalam aplikasi Anda telah digunakan.
Material Count Jumlah instance MaterialAset yang menentukan bagaimana permukaan harus diberikan. More info
Lihat di Glossary
dalam aplikasi Anda.
Object Count Jumlah instance objek asli dalam aplikasi Anda.
GC Used Memory Jumlah memori GC heap telah digunakan.
GC Allocated in Frame Jumlah memori yang dialokasikan per bingkai pada heap GC.

Detail modul pane

Ada dua pandangan yang tersedia di panel detail modul, terletak di bagian bawah jendela Profiler:

  • Sitemap Menampilkan ikhtisar tingkat tinggi dari statistik memori per bingkaiSimple: Displays a high level overview of the memory statistics per frame
  • Sitemap Tangkap snapshot memori yang berisi lebih detail tentang memori yang benda-benda asli yang digunakan, termasuk referensi asli kepada mereka, dan subsistem yang berbeda Unity.Detailed: Captures a memory snapshot which contains more details on the memory that native objects used, including native references to them, and Unity’s different subsystems.

Untuk mengubah tampilan, pilih dari dropdown di sebelah kiri atas pane detail modul.

Tampilan sederhana

Tampilan sederhana menampilkan ikhtisar bagaimana Unity menggunakan memori secara real-time pada dasar per-frame. Ini memecah memori total yang digunakan aplikasi Anda menjadi beberapa kategori utama. Nilai Total didasarkan pada Counter Profiler Memori yang Digunakan Sistem, yang menunjukkan berapa banyak laporan sistem operasi (OS) seperti yang digunakan oleh aplikasi Anda.

The Simple view with some Profiler data loaded
Tampilan sederhana dengan beberapa data Profiler dimuat

Unity menetapkan beberapa kolam memori selain alokasi untuk menghindari meminta sistem operasi untuk memori terlalu sering. Modul Profiler menampilkan berapa banyak cadangan Unity memori, dan berapa banyak memori Unity yang digunakan pada saat pengambilan Profiler.

Tampilan sederhana menampilkan data yang dikumpulkan dalam System Used Memory Ditempatkan dalam kode dengan ProfilerCounter API untuk melacak metrik, seperti jumlah musuh yang ditidur dalam permainan Anda.
Lihat di Glossary
. Ini menunjukkan berapa banyak memori sistem operasi (OS) laporan sebagai digunakan oleh aplikasi dan sesuai dengan nilai Total dari bar Total Committed Memory dan bar Total Memory Breakdown.

Pada platform yang mendukung mendapatkan total ukuran memori aplikasi dari sistem operasi, System Memory Usage lebih dari 0 dan adalah ukuran yang sama dalam manajer tugas.

Tabel referensi berikut menjelaskan statistik yang tersedia dalam tampilan Sederhana, ditambah counter profiler yang sesuai, dan ketersediaan dalam membangun rilis. Informasi ini juga tersedia melaluiProfilerRecorder API dan diProfiler Modul Editor sehingga Anda dapat menambahkannya ke modul Profiler kustom.

Property Description Corresponding Profiler counter Available in Release Players?
Normalized Aktifkan pengaturan ini untuk mengukur grafik Total Committed Memory dan Total Memory Breakdown untuk penggunaan memori dari bingkai yang dipilih. Jika Anda menonaktifkan pengaturan ini, skala grafik ke total memori yang digunakan dalam rentang bingkai. Pengaturan ini dapat membantu Anda melihat berapa jumlah total atau relatif dari perubahan memori dari bingkai ke bingkai N/A N/A
Total Committed Memory Panjang Total Committed Memory bar menunjukkan jumlah total memori yang sistem Unity Memory Manager dilacak, berapa banyak yang digunakan, dan berapa banyak memori tidak dilacak melalui sistem ini. Sistem Memori yang Digunakan Yes
Memori yang dilacak (dalam penggunaan / dilangsungkan) Menunjukkan jumlah total memori yang digunakan Unity dan trek (in use), dan jumlah memori yang dimiliki Unity untuk tujuan pelacakan dan alokasi kolam (Reserved). Total Digunakan Memori

Total 0 produk untuk Memory
Yes
Memori yang tidak dilacak Menunjukkan jumlah total memori yang digunakan Unity tetapi tidak menyadari. Beberapa contoh memori yang tidak dilacak adalah:

- Memori dialokasikan melalui plug-ins asli atau beberapa driver
- Mono atau IL2CPP jenis metadata
- Memori yang dapat dieksekusi kode dan DLL menggunakan

Penyedia platform asli mungkin memiliki informasi lebih lanjut tentang beberapa jumlah memori yang tidak dilacak ini.
N/A N/A
Total Memory Breakdown Menampilkan jumlah total yang sama sebagai bar Total Committed Memory tetapi memecahnya ke beberapa kategori tingkat tinggi, berdasarkan subsistem Unity mengalokasikan memori untuk.

Tidak semua sistem memori menggunakan pool atau membedakan antara memori yang digunakan dan dicadangkan. Mereka yang menampilkan dua angka, yang digunakan dan jumlah memori yang disediakan. Jika jumlah yang digunakan tidak berbagi unit yang sama (B, MB, GB) sebagai jumlah yang disediakan, Unity menampilkan unit, jika tidak dihilangkan.
Sistem Memori yang Digunakan Yes
Dikelola Heap (dalam penggunaan / dilangsungkan) Ukuran heap yang digunakan dan ukuran heap total yang menggunakan kode yang dikelola. Memori ini adalah sampah yang dikumpulkan. GC Digunakan Memori

GC Sitemap
Yes
Grafik & Grafik Login Perkiraan jumlah memori driver yang digunakan pada Tekstur, target render, Shaders, dan data Mesh. Gfx Digunakan Memori

Gfx Sitemap
No
Audio Perkiraan penggunaan memori sistem Audio. Audio Digunakan Memori

Audio Sitemap
Yes
Video Perkiraan penggunaan memori sistem Video. Video Digunakan Memori

Video Sitemap
Yes
Other Menampilkan memori asli yang trek Unity, tetapi tidak dilaporkan di bawah counter tertentu.

Untuk mendapatkan informasi lebih lanjut tentang makeup dari kategori ini atau lainnya, ambil snapshot di Tampilan terperinci atau dengan paket Memory Profileer.

Important: Kategori lain tidak langsung peta ke kelompok lain dalam tampilan Detailed. Dalam pandangan ini, Other mengandung sisa memori asli yang tidak digunakan untuk sisi GPU memori grafis, Profiler, Audio, atau memori Video.
N/A N/A
Profiler Memori yang menggunakan fungsi Profileer dan cadangan dari sistem. Profiler Memori

Profiler Sitemap
Yes
Objects stats Menampilkan jumlah kasus objek dari jenis Aset yang umumnya mengambil persentase tinggi memori (Tekstil, Mesh, Bahan, Klip Animasi), bersama dengan ukuran terakumulasi mereka dalam memori (Assets, GameObjects, objek Adegan).

Note: Tekstur dan Memori Mesh tidak peta langsung ke Graphics & Graphics Driver stat dalam pandangan Total Memory Breakdown. Ini karena beberapa memori itu mungkin juga jatuh ke dalam kategori Other dari Total Memory Breakdown bar.
Hitungan objek No
Textures Jumlah total tekstur yang dimuat dan memori yang mereka gunakan. Tekstur Count

Texture Login
No
Meshes Jumlah total mesh yang dimuat dan memori yang mereka gunakan. Hitung Mesh

Mesh Memory
No
Materials Jumlah total bahan dimuat dan memori yang mereka gunakan. Bahan Count

Material Login
No
Animasi Klip Jumlah total Animasi yang dimuat dan memori yang mereka gunakan. AnimasiClip Count

AnimationClip Login
No
Assets Jumlah total aset yang dimuat. Jumlah Aset No
Objek Permainan Jumlah total instance GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary
pada sceneAdegan 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
.
Hitungan GameObject No
Objek Adegan Jumlah total UnityEngine.Objects dinamis. Jumlah ini termasuk Hitungan GameObject, ditambah jumlah total komponen, dan semuanya yang bukan aset di tempat kejadian. Adegan Objek Count No
GC dialokasikan dalam bingkai Menampilkan jumlah alokasi yang dikelola dalam bingkai yang dipilih, dan ukuran total mereka di byte. GC Alokasi Dalam Bingkai Count

GC Sitemap
No

Ketersediaan dalam Pemain

Anda dapat menggunakan ProfilerRecorder API untuk mengakses kontra modul Memory Profileer di Pemain. Contoh berikut mengandung skrip sederhana yang mengumpulkan Total Reserved Memory, GC Reserved Memory dan metrik System Used Memory, dan menampilkan mereka sebagai Login Login. Informasi modul Memory Profileer milik ProfilerCategory. Login Profiler categoryMengidentifikasi data beban kerja untuk subsistem Unity (misalnya, rendering, Scripting dan kategori Animasi). Unity menerapkan pengkodean warna untuk kategori untuk secara visual membedakan antara jenis data di jendela Profiler.
Lihat di Glossary
.

using System.Text;
using Unity.Profiling;
using UnityEngine;

public class MemoryStatsScript : MonoBehaviour
{
    string statsText;
    ProfilerRecorder totalReservedMemoryRecorder;
    ProfilerRecorder gcReservedMemoryRecorder;
    ProfilerRecorder systemUsedMemoryRecorder;

    void OnEnable()
    {
        totalReservedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "Total Reserved Memory");
        gcReservedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "GC Reserved Memory");
        systemUsedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "System Used Memory");
    }

    void OnDisable()
    {
        totalReservedMemoryRecorder.Dispose();
        gcReservedMemoryRecorder.Dispose();
        systemUsedMemoryRecorder.Dispose();
    }

    void Update()
    {
        var sb = new StringBuilder(500);
        if (totalReservedMemoryRecorder.Valid)
            sb.AppendLine($"Total Reserved Memory: {totalReservedMemoryRecorder.LastValue}");
        if (gcReservedMemoryRecorder.Valid)
            sb.AppendLine($"GC Reserved Memory: {gcReservedMemoryRecorder.LastValue}");
        if (systemUsedMemoryRecorder.Valid)
            sb.AppendLine($"System Used Memory: {systemUsedMemoryRecorder.LastValue}");
        statsText = sb.ToString();
    }

    void OnGUI()
    {
        GUI.TextArea(new Rect(10, 30, 250, 50), statsText);
    }
}

screenshot berikut menunjukkan hasil dari menambahkan skrip ke .

Tanks! tutorial with the overlaid memory information
Login tutorial dengan informasi memori overlaid

Informasi ini tersedia di Release Players, seperti penghitung tingkat tinggi lainnya di tabel di atas. Jika Anda ingin melihat kontra memori yang dipilih dalam modul kustom di jendela Profiler, gunakan Modul Editor untuk mengkonfigurasi grafik.

Tampilan terperinci

Tampilan terperinci memberikan snapshot dari state saat ini aplikasi Anda. Pilih tombol Take Sample untuk menangkap penggunaan memori rinci untuk target saat ini. Dibutuhkan waktu Profiler untuk mendapatkan data ini, sehingga tampilan terperinci tidak memberikan rincian waktu nyata. Setelah Profiler mengambil sampel, jendela Profiler menampilkan tampilan daftar di mana Anda dapat menjelajahi penggunaan memori aplikasi Anda secara lebih rinci.

The Detailed memory module view
Tampilan modul memori terperinci

Aktifkan pengaturan Gather Object References di bagian atas detail modul pane untuk mengumpulkan informasi tentang apa yang merujuk objek pada saat snapshot. Profiler menampilkan informasi ini di pane kanan jendela.

Tampilan daftar membagi objek yang menggunakan memori ke dalam kategori berikut:

  • Sitemap Objek yang bukan Aset, GameObjects, atau komponen. Ini termasuk informasi seperti penggunaan Unity memori untuk sistem yang berbeda.Other: Objects that are neither Assets, GameObjects, or components. This includes information such as the memory Unity uses for different systems.
  • Sitemap Objek ditandai sebagai Not Saved: Objects marked as DontSave
  • Sumber daya Editor Unity Builtin Resources:ShadersProgram yang berjalan di GPU. More info
    Lihat di Glossary
    atau sumber daya default Unity, seperti Selalu Termasuk Shaders Anda telah ditambahkan ke daftar dari pengaturan Grafik.
  • Sitemap Aset yang dirujuk dari pengguna atau kode asli.Assets: Assets referenced from user or native code.
  • Sitemap Objek dan komponen terpasang.Scene Memory: Objects and attached components.

Ketika Anda mengklik GameObject di Aset atau daftar Memori Adegan, Unity menyorotinya di Proyek atau Scene viewTampilan interaktif ke dunia yang Anda buat. Anda menggunakan Adegan Lihat untuk memilih dan posisi pemandangan, karakter, kamera, lampu, dan semua jenis lain dari Game Object. More info
Lihat di Glossary
.

Sitemap Dalam kategori lain, memori yang dilaporkan di bawah memori Note: dibaca. Sistem operasi mungkin membuang halaman ini sesuai kebutuhan dan kemudian memuat ulang mereka dari sistem file. Ini menghasilkan penggunaan memori yang lebih rendah, dan tidak langsung berkontribusi pada keputusan sistem operasi untuk menutup aplikasi Anda jika menggunakan terlalu banyak memori. Beberapa halaman ini juga dapat dibagikan dengan aplikasi lain yang menggunakan framework yang sama.System.ExecutableAndDlls is read-only memory. The operating system might discard these pages as needed and later reload them from the file system. This generates lower memory usage, and doesn’t directly contribute to the operating system’s decision to close your application if it uses too much memory. Some of these pages might also be shared with other applications that are using the same frameworks.

Login Database
Modul Profiler Fisika