CPU di CPU Penggunaan modul 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 berisi grafik yang menampilkan di mana waktu dihabiskan dalam aplikasi Anda. Ini memberikan gambaran dari semua area yang signifikan di mana aplikasi Anda menghabiskan waktu, seperti pada rendering, 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 animasi. Bagian dokumentasi ini mencakup:
CPU di CPU Pemakaian Grafik modul profiler melacak waktu yang dihabiskan pada benang utama aplikasi. Waktu dibagi menjadi sembilan kategori. Untuk mengubah urutan kategori di grafik, Anda dapat menyeret dan menjatuhkannya di legenda grafik. Anda juga dapat mengklik legenda berwarna kategori untuk memotong tampilannya.
Category | Description |
---|---|
Rendering | Berapa banyak waktu aplikasi Anda menghabiskan grafis rendering. |
Scripts | Berapa banyak waktu aplikasi Anda menghabiskan pada menjalankan skrip. |
Physics | Berapa banyak waktu aplikasi Anda menghabiskan pada physics engineSebuah sistem yang mensimulasikan aspek sistem fisik sehingga benda dapat mempercepat dengan benar dan dipengaruhi oleh tabrakan, gravitasi dan kekuatan lainnya. More info Lihat di Glossary. |
Animation | Berapa banyak waktu aplikasi Anda menghabiskan pada aimating Skinned 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 Renderers, GameObjectsObjek 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 dan komponen lainnya dalam aplikasi Anda. Ini juga mencakup waktu yang dihabiskan pada perhitungan untuk sistem penggunaan Animasi dan Animator componentsKomponen pada model yang merupakan model yang menggunakan sistem Animasi. Komponen ini memiliki referensi aset Animator Controller yang mengontrol animasi. More info Lihat di Glossary. |
GarbageCollector | Berapa banyak waktu aplikasi Anda menghabiskan pada menjalankan Pengumpul Sampah. |
VSyncVertical synchronization (VSync) is a display setting that caps a game’s frame rate to match the refresh rate of a monitor, to prevent image tearing. See in Glossary |
Berapa banyak waktu aplikasi Anda menghabiskan per bingkai menunggu Login Login atau VBlankInterval kosong vertikal (VBlank) adalah waktu antara akhir garis terlihat akhir dari bingkai dan awal garis terlihat pertama dari bingkai berikutnya. Ini adalah interval refresh sebagaimana didefinisikan oleh tingkat refresh layar. Lihat di Glossary berikutnya untuk menyinkronkan. Ini sesuai dengan nilai WordPress.org, target membingungkan, atau pengaturan VSync yang default atau diberlakukan maksimum platform aplikasi Anda berjalan. Untuk informasi lebih lanjut tentang VSync, lihat bagian dalam dokumentasi ini pada Sampel rendering dan VSync. |
Global IlluminationA group of techniques that model both direct and indirect lighting to provide realistic lighting results. See in Glossary |
Berapa banyak waktu aplikasi Anda menghabiskan pada pencahayaan. |
UI(User Interface) Allows a user to interact with your application. Unity currently supports three UI systems. More info See in Glossary |
Berapa banyak waktu aplikasi Anda menghabiskan pada menampilkan UI. |
Others | Berapa banyak waktu aplikasi Anda menghabiskan kode yang tidak jatuh ke dalam kategori lain. Ini termasuk area seperti seluruh EditorLoop, atau Profiling overhead ketika Anda profil Play Mode di Editor. |
Ketika Anda memilih modul penggunaan CPU, detail pane di bawah ini menampilkan rincian di mana aplikasi menghabiskan waktu dalam bingkai yang dipilih. Anda dapat menampilkan data waktu sebagai tabel timeline atau hierarki. Untuk mengubah tampilan, gunakan dropdown kiri atas dalam pane rincian (set ke Timeline secara default). Tiga pandangan yang tersedia adalah:
View | Function |
---|---|
Timeline | Menampilkan rincian waktu untuk bingkai tertentu, bersama sumbu waktu panjang bingkai. Ini adalah satu-satunya mode tampilan yang dapat Anda gunakan untuk melihat waktu pada semua benang sekaligus dan pada saat-saat di dalam bingkai di mana mereka terjadi, sehingga Anda dapat menukarkan waktu di seluruh benang (misalnya, benang pekerja Sistem Pekerjaan dimulai setelah sistem pada jadwal benang utama mereka). |
Hierarchy | Kelompok data waktu oleh struktur hirarkis internal. Pilihan ini menampilkan elemen-elemen yang disebut dalam format daftar turun, dipesan oleh waktu yang dihabiskan secara default. Anda juga dapat memesan informasi dengan jumlah skrip memori yang dialokasikan (GC Alloc), atau jumlah panggilan. Untuk mengubah kolom yang memesan tabel, klik header kolom tabel. |
Raw Hierarchy | Menampilkan data waktu dalam struktur hirarkis yang mirip dengan tumpukan panggilan di mana waktu terjadi. Daftar persatuan setiap tumpukan panggilan secara terpisah dalam mode ini daripada merging mereka, karena itu tidak dalam tampilan Hierarchy. |
Pengaturan Live, yang tersedia di setiap pandangan, menampilkan informasi tentang bingkai saat ini atau dipilih dalam pane detail modul ketika Anda mulai merekam data baru di Playmode atau Editor. Untuk mengaktifkan ini, klik tombol Live di sebelah dropdown detail modul. Secara default, pengaturan ini dinonaktifkan, dan pane detail modul kosong ketika Anda mencatat data. Login Pengaturan ini meningkatkan overhead Note: ketika jendela Profiler direpainted.EditorLoop
when the Profiler window is repainted.
Selain itu, dalam setiap pandangan, Anda dapat memilih menu More Items (Perusahaan) dan mengaktifkan Show Full Scripting Method Names, yang kemudian menampilkan nama yang sepenuhnya berkualitas untuk semua metode scripting (Assembly::Class::MethodName
).
Tampilan Timeline adalah tampilan default untuk modul Profiler Penggunaan CPU. Ini berisi ikhtisar di mana waktu dihabiskan dalam aplikasi Anda dan bagaimana waktu yang berhubungan satu sama lain.
Tampilan Timeline menampilkan data profil dari semua benang di bagian mereka sendiri dan sepanjang sumbu waktu yang sama, tidak seperti pandangan Hierarchy. Pandangan Hierarchy hanya menampilkan data profil satu benang pada waktu, defaulting ke benang utama. Juga, pandangan ini hanya menunjukkan durasi sampel, sedangkan pandangan Timeline menunjukkan di mana kali setiap sampel terjadi.
Anda dapat menggunakan tampilan Timeline untuk melihat bagaimana aktivitas pada benang yang berbeda berkorelasi satu sama lain dalam eksekusi paralel mereka. Anda dapat melihat berapa banyak atau sedikit Anda menggunakan benang yang berbeda, seperti benang pekerja Sistem Pekerjaan, bagaimana bekerja pada benang diqueued up, dan jika benang apa pun yang disengaja (kuda sampel) atau menunggu benang lain atau pekerjaan untuk menyelesaikan (Karena sampel x).
Untuk memperbesar di daerah sumbu waktu, gunakan roda gulir pada mouse Anda, atau tekan dan menahan kunci Alt saat Anda menyeret dengan tombol mouse kanan menekan. Anda juga dapat menggunakan ujung gulir horisontal untuk memperbesar. Tekan tombol A pada keyboard Anda untuk mengatur ulang zoom sehingga seluruh waktu bingkai terlihat.
Setiap kali Anda melihat panah putih di bagian bawah benang, Anda dapat mengkliknya untuk membuka benang untuk menunjukkan semua garis, atau klik lagi untuk menunjukkan hanya yang teratas. Anda juga dapat menyeret garis yang memisahkan benang untuk menyesuaikan berapa banyak garis yang dapat Anda lihat. Klik dua baris mengatur ketinggian bagian benang ke kedalaman maksimum tumpukan panggilan. Untuk memanci tampilan, tekan tombol mouse tengah, atau tahan kunci Alt (Kunci umum pada macOS) dan tekan tombol mouse kiri.
Untuk runtuh dan memperluas kelompok benang, klik pada panah lipat di sebelah nama benang di sebelah kiri jauh dari pandangan.
Untuk melihat kontribusi item pada grafik CPU, pilih dalam pane yang lebih rendah. Profiler menyoroti kontribusinya, dan mengurangi sisa grafik. Untuk memilih item, klik di tempat lain dalam tampilan. Tekan tombol F untuk memfokuskan sampel saat ini yang Anda pilih, atau untuk menunjukkan tingkat zoom default jika Anda telah memilih apa-apa.
Dalam gambar di atas, tooltip pada sampel yang dipilih memberikan rincian lebih lanjut, seperti jumlah instance dan total waktu sampel ini di semua benang. Anda dapat memilih teks di tooltip dan menyalinnya serta menggunakan tombol untuk berinteraksi dengan sampel lebih lanjut:
Operation | Description |
---|---|
Copy | Salin tumpukan panggilan dan seluruh konten tooltip ke clipboard Anda. |
Show | Pilih dropdown ini untuk memilih dari opsi berikut: |
Hierarchy | Beralih ke sampel ini dalam tampilan Hierarchy view |
Raw Hierarchy | Beralih ke sampel ini dalam tampilan Raw Hierarchy view |
Detail Lengkap untuk Stack Panggilan | Unity catatan panggilan tumpukan sebagai daftar metode pointer alamat, yang digunakan untuk menampilkan nama metode, path file, dan nomor baris tumpukan. Setiap kali hanya alamat pointer hadir, Unity mengabaikannya untuk menghemat ruang layar untuk item yang dapat ditindaklanjuti yang memiliki informasi lebih lanjut yang tersedia. Aktifkan properti ini untuk melihat daftar lengkap alamat pointer metode dari tumpukan panggilan. |
Stack Sampel Terpilih | Lihat rincian tumpukan sampel. Unity membuka informasi ini di jendela terpisah. Anda kemudian dapat menyalin informasi tumpukan sampel ke clipboard Anda. Tumpukan sampel berbeda dari tumpukan panggilan metode karena Unity tidak mengikat setiap sampel ke metode tertentu, atau mencatat setiap panggilan sebagai sampel. Jika Anda memilih sampel dalam bingkai yang berbeda dan tidak ada sampel dengan tumpukan sampel yang sama dalam bingkai yang ditampilkan, jendela ini menunjukkan tumpukan sampel dari seleksi asli, serta pemilihan perkiraan untuk bingkai ini. |
Login Sampel Alloc muncul berwarna merah-magenta, dan menunjukkan ukuran alokasi.
Untuk menunjukkan tumpukan panggilan yang dikelola di tooltip, arahkan ke toolbarSe baris tombol dan kontrol dasar di bagian atas Editor Unity yang memungkinkan Anda untuk berinteraksi dengan Editor dengan berbagai cara (misalnya scaling, terjemahan). More info
Lihat di Glossary jendela Profiler, dan pilih tombol Call Stacks. Anda harus mengaktifkan properti ini sebelum profil bingkai untuk menampilkan tumpukan panggilan untuk bingkai. Untuk informasi lebih lanjut, lihat bagian pada call stacks.
Untuk membantu Anda memvisualisasikan bagaimana jadwal kerja di benang, Anda dapat menggunakan pengaturan Flow Events. Pengaturan ini menampilkan hubungan antara sistem, pekerjaan dan benang. Untuk mengaktifkan pengaturan ini, pilih menu More (Perusahaan) di kanan atas pane tampilan Timeline, dan kemudian pilih Show Flow Events.
Ketika Anda mengaktifkan pengaturan ini, Profiler menambahkan penanda acara putih ke Profiler samplesSatu set data yang terkait dengan penanda Profiler, bahwa Profiler telah mencatat dan dikumpulkan.
Lihat di Glossary yang menjadwalkan pekerjaan, atau menunggu pekerjaan dijadwalkan untuk menyelesaikan. Ini juga mengeras sampel yang tidak terkait sehingga Anda dapat lebih mudah memvisualisasikan sampel yang Anda pilih.
Ada tiga jenis panah Profiler menambahkan sampel:
Ketika Anda memilih sampel, Profiler menghubungkan penanda acara aliran yang relevan bersama dengan garis. Garis yang lebih tebal menyoroti garis aliran tertentu yang Anda pilih. Misalnya, jika sampel begin
poin untuk dua sampel next
lainnya, ketika Anda mengklik salah satu sampel next
, Profiler menarik garis yang lebih tebal untuk itu.
Tampilan ini berguna untuk menemukan aliran pelaksanaan kode Anda, pekerjaan apa yang menunggu untuk menyelesaikan, dan membantu Anda mengungkap ketergantungan kode Anda dengan cara visual.
Ketika Anda beralih ke tampilan Hierarchy atau Raw Hierarchy, pilihan Anda membawa lebih, selama sampel pada benang utama. Jika Anda tidak dapat segera menemukan pilihan Anda, tekan tombol F untuk memfokuskannya.
Daftar pandangan Hierarchy semua sampel yang Anda miliki diprofilkan dan kelompok mereka bersama dengan tumpukan panggilan bersama mereka dan hierarki dari ProfilerMarkers. Tampilan Raw Hierarchy tidak ada sampel kelompok bersama-sama, yang membuatnya ideal untuk mencari sampel pada tingkat granular. Anda juga dapat menggunakan dropdown Thread untuk memilih benang tertentu, seperti Thread Utama atau Thread Render untuk memeriksa pandangan ini.
Secara default, semua sampel EditorOnly runtuh dalam pandangan ini. Sampel editorOnly adalah sampel di Loop Pemain yang hanya terjadi karena pemeriksaan keamanan editor-only. Ketika sampel runtuh, GC mereka. Nilai Alloc tidak berkontribusi pada GC. Nilai Alloc sampel enclosing mereka. Untuk menampilkan sampel ini, pilih menu More Items (Perusahaan) di kanan atas pane rincian, dan kemudian menonaktifkan pengaturan Collapse EditorOnly Samples. Untuk informasi lebih lanjut, lihat bagian Editor hanya sampel dokumentasi ini.
Kedua pandangan menampilkan informasi rinci berikut untuk setiap item di Hierarchy, di samping setiap baris:
Property | Function |
---|---|
Total | Jumlah total waktu Unity yang dihabiskan pada fungsi tertentu, sebagai persentase. |
Self | Jumlah total waktu Unity dihabiskan pada fungsi tertentu sebagai persentase, termasuk waktu Unity menghabiskan memanggil sub-fungsi. Misalnya, di tangkapan layar, 16.7% dari waktu yang dihabiskan dalam fungsi Camera.Render . Ini karena panggilan banyak fungsi menggambar dan penanaman. Namun, ketika Anda mengecualikan fungsi panggilan, hanya 0,2% dari waktu yang dihabiskan pada fungsi Camera.Render itu sendiri. |
Calls | Jumlah panggilan yang dibuat untuk fungsi ini dalam bingkai ini. Pada Raw Hierarchy melihat nilai-nilai di kolom ini selalu 1 karena Profiler tidak menggabungkan hierarki sampel. |
GC Alloc | Berapa banyak scripting heap memori Unity telah dialokasikan dalam bingkai saat ini. kolektor sampah mengelola memori skrip. Kapan pun Unity memanggil GC.Collect() atau ada alokasi skriping yang tidak pas dalam ukuran saat ini iaap, pemicu kolektor sampah. Ini menandai semua alokasi yang tidak memiliki referensi lebih untuk mereka dan mengumpulkannya. Proses ini muncul sebagai sampel GC.Collect di Profiler. Unity menjalankan kolektor garbage lebih sering karena aplikasi Anda mengalokasikan lebih banyak di heap. Sebagai landasan yang dikelola, dibutuhkan Unity lebih lama untuk menandai dan mengumpulkan memori. Seperti itu, Anda harus menyimpan nilai GC Alloc pada nol sementara aplikasi Anda berjalan, untuk mencegah kolektor sampah dari mempengaruhi framerate aplikasi Anda, dan untuk menjaga ukuran heap keseluruhan kecil. Untuk rincian lebih lanjut tentang heap yang berhasil melihat dokumentasi pada Memahami Manajemen Memori Otomatis. |
Time ms | Jumlah total waktu Unity yang dihabiskan pada fungsi tertentu, dalam mili detik. Jika aplikasi Anda menggunakan rendering Sistem Pekerjaan atau multithreaded, informasi ini mungkin menyesatkan, karena hanya mengandung waktu Unity yang dihabiskan pada benang yang dipilih saat ini. Untuk mengubah benang, pilih dropdown Thread di bagian atas pane Hierarchy. |
Self ms | Jumlah total waktu Unity yang dihabiskan pada fungsi tertentu, dalam mili detik, termasuk waktu Unity menghabiskan memanggil sub-fungsi. |
Warning | Diindikasikan oleh ikon peringatan, tampilan ini berapa kali aplikasi telah memicu peringatan selama bingkai saat ini. Untuk informasi lebih lanjut, lihat bagian Peringatan kinerja dokumentasi ini. |
Untuk mendapatkan informasi lebih lanjut tentang di mana panggilan aplikasi Anda dan menggunakan fungsi yang diprofilkan, pilih dropdown Details di sudut kanan atas pane rincian modul dan pilih tampilan Related Data atau Calls.
Tampilan Related Data menampilkan daftar UnityEngine.Objects
yang menggunakan overload Begin() dan dikaitkan dengan sampel Profiler. Beberapa sampel yang laporan Unity memiliki asosiasi ini dibangun, seperti CameraKomponen yang menciptakan gambar sudut pandang tertentu di tempat kejadian Anda. Output ditarik ke layar atau ditangkap sebagai tekstur. More info
Lihat di Glossary. Sampel render yang terkait dengan Kamera GameObject yang melakukan rendering. Unity melaporkan objek ini melalui ID instance mereka dan menyelesaikannya ke nama di jendela Profiler, jika Anda profil di Editor.
Ketika Anda mengklik salah satu objek ini, Unity mencoba untuk menemukan objek melalui hierarki 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 dan ping itu. Karena asosiasi menggunakan ID instance, pinging hanya bekerja ketika Anda mengakses aplikasi Anda di Editor, dan selama objek masih ada.
Untuk sampel GC.Alloc
, pandangan ini menampilkan daftar item N/A
, satu untuk setiap alokasi yang terjadi pada tingkat hirarki ini, dengan ukuran alokasi yang tercantum dalam GC. kolom Alloc. Jika Anda profil aplikasi Anda dengan pengaturan Call StacksDaftar metode yang disebut pada waktu lari, diatur sebagai tumpukan pertama-out terakhir.
Lihat di Glossary diaktifkan, ketika Anda memilih sampel GC.Alloc
dalam pandangan ini, jendela Profiler menampilkan tumpukan panggilan untuk objek scripting yang dialokasikan yang Anda pilih, bahkan jika Anda tidak mengaktifkan pengaturan Deep Profileing. Untuk informasi lebih lanjut, lihat bagian Allocation call stacks dokumentasi ini.
Tampilan Calls menampilkan di mana sampel yang dipilih disebut dari serta fungsi lain yang disebut.
memancarkan satu set sampel yang menggunakan Profiler untuk menampilkan dan mengatur informasi profil ke tampilan kronologi dan hirarkis yang berbeda. Setiap sampel yang ditampilkan di jendela Profiler adalah oleh karena itu bagian dari tumpukan sampel.
Tumpukan sampel berbeda dari tumpukan panggilan metode karena Unity tidak mengikat setiap sampel ke metode tertentu, atau mencatat setiap panggilan sebagai sampel. Profil menambahkan ProfilerMarker
untuk setiap panggilan fungsi, tetapi tidak menambahkan kode asli, ditambah rekaman semua sampel ini dilengkapi dengan overhead yang berpotensi tinggi.
Anda dapat mengaktifkan tumpukan panggilan penuh untuk sampel yang GC.Alloc, UnsafeUtility.Malloc, pemancar JobHandle.Complete. Ini berguna jika Anda ingin melacak di mana sampel ini terjadi, tanpa mengaktifkan Deep Profileing dan menemukan overhead yang tinggi. Untuk informasi lebih lanjut tentang penanda ini, lihat dokumentasi di Penanda Profiler Umum.
Untuk mengaktifkan tumpukan panggilan penuh untuk sampel ini, arahkan ke bilah alat dari jendela Profiler dan mengaktifkan tombol Call Stacks. Secara default, ini memungkinkan tumpukan panggilan untuk sampel GC.Alloc. Untuk mengaktifkan tumpukan panggilan lainnya, pilih panah dropdown dan aktifkan penanda lain yang ingin Anda lihat tumpukan panggilan untuk.
Anda dapat menggunakan fungsi ini apakah Anda profil di Editor atau pada pemain yang berjalan. Ini hanya berlaku untuk bingkai profil Anda setelah Anda mengubah opsi ini.
Sebagai contoh, setiap skrip alokasi muncul sebagai GC. Alloc sampel dalam pandangan Hierarchy dan pandangan Timeline. Dalam pandangan Timeline, itu berwarna cerah magenta. Untuk melihat tumpukan panggilan, pilih modul Profiler CPU dan kemudian pilih GC. Sampel Alloc dalam tampilan Timeline. Tumpukan panggilan muncul di sorotan seleksi.
Untuk menyalin tumpukan panggilan, pilih tombol Copy di tooltip. Anda juga dapat membuka file kode yang relevan dari tampilan ini jika path file disorot sebagai tautan biru. Klik pada tautan dan file terbuka di IDE default Anda. Login Informasi tumpukan panggilan tidak mengandung nomor garis yang tepat dalam metode itu tetapi hanya garis pada awal metode itu.Note: The call stack information does not contain the exact line number within that method but just the line at the beginning of that method.
Anda juga dapat menggunakan dropdown Show untuk melihat GC. tumpukan sampel Alloc, rincian lengkapnya, atau beralih untuk melihatnya dalam tampilan Hierarchy atau Raw Hierarchy.
Untuk melihat rincian tumpukan panggilan penuh, sementara dalam tampilan Hierarchy atau Raw Hierarchy, set pandangan Details ke Related Data. Tampilan ini mencantumkan metadata yang terkait dengan sampel ini, yang mungkin mencakup UnityEngine. Objek yang terkait. Untuk setiap entri metadata yang tidak terkait dengan UnityEngine. Objek, nama muncul sebagai N/A di panel ini. Ketika Anda memilih entri N / A, Profiler menampilkan data meta, termasuk tumpukan panggilan di bagian bawah dari tampilan detail.
Untuk informasi lebih lanjut tentang alokasi yang dikelola, lihat dokumentasi di Memahami Manajemen Memori Otomatis.
Kode Unity di instrumentasi dengan sejumlah besar Profiler markersDitempatkan dalam kode untuk menggambarkan acara CPU atau GPU yang kemudian ditampilkan di jendela Unity Profileer. Ditambahkan ke kode Unity secara default, atau Anda dapat menggunakan untuk menambahkan penanda kustom Anda sendiri. More info
Lihat di Glossary yang memberi Anda wawasan tentang apa yang memakan waktu dalam aplikasi Anda. Untuk daftar lengkap penanda paling umum Anda mungkin melihat data profil Anda, lihat dokumentasi di Penanda Profiler Umum.