Ketika Anda menggunakan Profiler Unity untuk profil aplikasi Anda, ada tiga cara utama untuk merekam data:
Cara terbaik untuk mendapatkan waktu yang akurat tentang aplikasi Anda adalah untuk profil di platform akhir Anda berniat untuk mempublikasikannya. Ini memberi Anda waktu yang akurat tentang apa dampak kinerja aplikasi Anda.
Namun, dapat memakan waktu untuk membangun aplikasi Anda setiap kali Anda ingin meningkatkan elemen kinerjanya. Jadi, untuk dengan cepat menilai kinerja aplikasi Anda, Anda dapat mengaksesnya langsung dalam mode Play di Editor. Profil dalam mode Play tidak memberi Anda refleksi yang akurat tentang apa kinerja aplikasi Anda terlihat seperti pada perangkat nyata, tetapi ini adalah alat yang berguna untuk dengan cepat memeriksa apakah perubahan yang Anda buat meningkatkan kinerja aplikasi Anda, setelah awalnya memprofilkan di platform akhir.
Editor Unity mungkin mempengaruhi kinerja aplikasi Anda, karena menggunakan sumber daya yang sama dengan aplikasi Anda ketika berjalan dalam mode Play, sehingga Anda juga dapat profil Editor secara terpisah untuk menentukan sumber daya apa yang digunakan. Ini sangat berguna jika aplikasi Anda hanya telah dirancang untuk bekerja dalam mode Play, seperti untuk pembuatan film.
Untuk profil aplikasi Anda pada platform rilis targetnya, hubungkan perangkat target ke jaringan Anda atau langsung ke komputer Anda melalui kabel. Anda juga dapat terhubung ke perangkat melalui alamat IP. Anda hanya dapat memprofilkan aplikasi Anda sebagai Development Build. Untuk mengatur up ini, pergi ke Build Settings (menu: File > Build Settings) dan pilih platform target aplikasi Anda. Aktifkan pengaturan Development Build. Ketika Anda mengaktifkan pengaturan ini, dua pengaturan yang terkait dengan Profiler menjadi tersedia: Autoconnect Profiler dan Deep Profiling Support.
Ketika Anda mengaktifkan pengaturan Autoconnect Profiler, Editor Unity memanggang alamat IPnya ke dalam Pemain yang dibangun selama proses build. Ketika Anda memulai Pemain, upaya untuk terhubung ke Profiler di Editor yang terletak di alamat IP panggang.
Jika Anda mengaktifkan pengaturan Deep Profiling Support, Unity melakukan Profil ketika pemain yang dibangun dimulai, yang berarti bahwa profil Profiler setiap bagian dari kode Anda, dan tidak hanya kode waktu yang dibungkus secara eksplisit di ProfilerMarkers. Ini berguna untuk mendapatkan informasi Deep Profileing pada waktu mulai aplikasi Anda, namun, ini menambahkan sejumlah kecil overhead ke build Anda.
Untuk menggunakan Profiler untuk menghubungkan secara manual ke platform yang menjalankan aplikasi Anda, mengkonfigurasi pengaturan di drop-down Attach to Player. Anda hanya bisa melakukan ini jika Autoconnect Profiler dinonaktifkan.
Untuk platform yang muncul di Lampiran ke Player drop-down harus memenuhi persyaratan berikut:
Drop-down Attach to Player menampilkan semua Pemain Unity yang Deteksi Unity melalui jaringan atau dengan koneksi langsung. Anda dapat mengidentifikasi Pemain ini oleh Player Name dan Product Name yang menjalankan Pemain (misalnya, “iPhonePlayer (My iPhone)”).
Anda juga dapat terhubung ke Pemain langsung melalui alamat IP. Untuk melakukan ini, pilih menu Attach to Player, lalu pilih <Enter IP> di dropdown. Dalam kotak dialog yang muncul, ketik alamat IP dan (opsional) port Pemain Anda ingin terhubung ke.
Untuk mengumpulkan informasi profil pada aplikasi Anda, pilih Pemain dari menu dropdown, lalu klik Record.
Untuk terus mengumpulkan data saat aplikasi Anda berjalan, aktifkan pengaturan Run In Background di Pengaturan Pemain (menu: Edit > Project Settings > Player > Resolution and Presentation). Ketika Anda mengaktifkan pengaturan ini, Profiler mengumpulkan data bahkan ketika Anda meninggalkan aplikasi Anda berjalan di latar belakang. Jika Anda menonaktifkannya, Profiler hanya mengumpulkan data ketika aplikasi berjalan di jendela aktif.
Penurunan Attach to Player termasuk bilah pencarian yang dapat Anda gunakan untuk menemukan informasi tentang Pemain Anda. Anda dapat mencari berdasarkan kategori Player Name atau perangkat, misalnya Remote. Ketika Anda mencari kategori, hasilnya menampilkan semua perangkat dalam kategori itu.
Pilih nama pemain pengembangan untuk melihatnya di profiler.
Setiap kolom memberikan informasi berikut tentang kapan tersedia:
Property: | Description: |
---|---|
Player Name | Nama perangkat yang menjalankan aplikasi Anda. Untuk mengubah nama ini, arahkan ke Edit > Preferences > Analysis > 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 dan masukkan nama yang Anda inginkan di bidang Custom Connection ID. Anda juga dapat mengatur nama Pemain yang ditetapkan ketika Anda meluncurkan Pemain dari baris perintah menggunakan argumen -connection-id .Untuk informasi lebih lanjut tentang kategori di properti ini, lihat Kategori perangkat nama pemain |
Product Name | Ini adalah nilai lapangan yang Anda set di Project > PlayerSettings. |
IP | Alamat IP dari Pemain. |
Port | Pelabuhan Pemain. |
Kategori Player Name mencakup kategori berikut yang menampilkan informasi tentang jenis perangkat tertentu:
Property: | Description: |
---|---|
Play Mode | Pilih properti ini untuk profil aplikasi Anda dalam Mode Bermain. |
Edit Mode | Pilih properti ini untuk profil Editor Unity. |
Local | Daftar ini berisi perangkat apa pun yang berjalan di mesin lokal, di Editor Unity atau di pemain yang berdiri sendiri. Ini juga menampilkan informasi untuk pemain yang terhubung secara fisik ke mesin host dengan kabel. |
Remote | Bagian ini menampilkan informasi untuk perangkat yang berjalan di jaringan lokal. Bagian ini hanya muncul ketika Unity menemukan perangkat jarak jauh yang berjalan di jaringan lokal. |
Connections without ID | Bagian ini hanya muncul ketika Unity menemukan perangkat yang menjalankan pemain lebih tua dari Unity 2021.2. Login Pemain ini tidak memiliki informasi , Product Name, atau IP.Port information. |
Direct Connection | Gunakan opsi ini untuk terhubung ke kombinasi IP dan port tertentu. Kategori ini menampilkan IP terbaru yang Anda terhubung ke. |
Platform yang berbeda berperilaku dengan cara yang berbeda ketika Anda menghubungkannya ke Profiler Unity. Bagian berikut memberikan panduan pada beberapa perilaku umum masing-masing platform memiliki:
Anda dapat menggunakan Profiler Unity di WebGL, tetapi Anda tidak dapat melampirkan pemain yang berjalan yang dibangun dengan WebGL melalui Editor. Ini karena WebGL menggunakan WebSockets untuk komunikasi, yang tidak memungkinkan koneksi masuk di sisi browser. Untuk melampirkan pemain lari, Anda perlu mengaktifkan kotak cemen Autoconnect Profiler di Build Settings (menu: File > Build Settings). Unity tidak dapat menarik panggilan profil untuk WebGL.
Kedua perangkat iOS dan Android mendukung profil jarak jauh melalui jaringan. Jika Anda menggunakan firewall, port terbuka 54998 ke 55511 dalam aturan outbound firewall Anda. Ini adalah port Penggunaan Unity untuk profil jarak jauh.
Kadang-kadang, ketika Anda mengatur profil jarak jauh, Editor Unity mungkin tidak terhubung secara otomatis ke perangkat. Jika ini terjadi, Anda dapat memulai koneksi Profiler secara manual. Untuk melakukan ini, pilih menu drop-down Attach to Player di jendela Profiler dan pilih perangkat yang tepat.
Anda juga dapat menghubungkan perangkat target langsung ke komputer Anda, untuk menghindari jaringan atau masalah koneksi.
Untuk mengaktifkan profil jarak jauh pada perangkat iOS, ikuti langkah-langkah ini:
Perangkat Android mendukung dua metode profil jarak jauh: melalui WiFi atau melalui Android Debug Bridge (adb).
Untuk profil WiFi, ikuti langkah-langkah ini:
Note: Perangkat Android dan komputer host yang menjalankan Editor Unity harus baik pada subnet yang sama untuk deteksi perangkat untuk bekerja.
Untuk profil Android Debug Bridge (adb), ikuti langkah-langkah ini:
Editor Unity secara otomatis membuat terowongan adb untuk aplikasi Anda ketika Anda memilih Build & Run. Jika Anda ingin profil aplikasi lain, atau Anda restart server adb, Anda perlu mengkonfigurasi terowongan ini secara manual. Untuk melakukan ini, buka jendela Terminal atau perintah prompt dan masukkan berikut:
Diperlukan ketika koneksi Editor-to-Android didirikan melalui kabel USB
adb forward tcp:34999 localabstract:Unity-{insert bundle identifier here}
Diperlukan ketika koneksi Android-to-Editor didirikan melalui kabel USB
adb reverse tcp:34998 tcp:34999
Untuk menggunakan Deep Profileing dengan build Android, Anda perlu mengaktifkan pengaturan backend Mono Scripting di Pengaturan Pemain Android (menu: Edit > Project Settings > Player > Android > Other Settings > ) dan masukkan berikut untuk memulai permainan melalui perintah adb:
~$ adb shell am start -n {insert bundle identifier here}/com.unity3d.player.UnityPlayerActivity -e 'unity' '-deepprofiling'
Unity tidak dapat secara otomatis menemukan perangkat OS Chrome. Untuk memulai koneksi, terhubung ke perangkat melalui Android Debug Bridge (adb) dengan alamat IP dan kemudian pilih <Enter IP>
dari menu drop-down Attach to Player dan masukkan alamat IP perangkat. Setelah Anda terhubung, Anda dapat mengakses aplikasi Anda seperti biasa.
Ketika Anda menggunakan jendela Profiler untuk menjalankan dan mengakses aplikasi Anda di Editor, hasilnya hanya perkiraan perilaku aplikasi Anda ketika platform target berjalan. Ini karena mode Play berjalan dalam proses yang sama seperti Editor, sehingga Anda tidak dapat sepenuhnya mengisolasi CPU aplikasi Anda, GPU, dan penggunaan memori dari penggunaan Editor Unity. Ini mengubah data profil yang dihasilkan.
Untuk mendapatkan hasil profil yang lebih baik, Anda harus selalu profil aplikasi Anda pada perangkat target, dan hanya profil di Editor untuk dengan cepat iterate atas masalah yang telah Anda mengidentifikasi pada perangkat.
Anda juga dapat profil dalam mode Play atau profil Editor untuk mengidentifikasi masalah yang tidak terkait dengan kinerja aplikasi Anda, seperti apakah waktu beban panjang atau editor yang tidak responsif memperlambat waktu iterasi, atau jika aplikasi Anda melakukan buruk dalam mode Play.
Kapan pun Anda profil di Editor, Anda harus memastikan bahwa Anda terbuka Bermain mode dalam pandangan maksimal, dan mengurangi jumlah jendela editor terbuka. Ini memastikan bahwa jendela Editor lain tidak menggunakan waktu pada benang render dan GPU, dan karenanya mempengaruhi data kinerja. Ketika Mode bermain berada dalam pandangan yang maksimal berjalan aplikasi Anda pada resolusi lebih dekat dengan perangkat target Anda, yang secara langsung mempengaruhi masalah kinerja seperti yang terkait dengan tingkat pengisian.
Target default Profiler adalah mode Play, yang mencatat aktivitas ketika Editor menjalankan mode Play. Mode bermain profil berguna untuk menguji perubahan cepat tanpa harus membangun kembali pemain, tetapi Anda tidak boleh menggunakannya sebagai pengganti untuk memvalidasi build pada platform target aplikasi Anda dan perangkat. Ini karena mode Play berjalan dalam aplikasi yang sama dan benang utama sebagai Editor, yang berarti bahwa ketika Anda profil dalam mode Play, sistem Editor seperti UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary, InspectorsJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary, 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 View rendering, dan manajemen aset mempengaruhi pengukuran profil kinerja dan memori aplikasi Anda.
Untuk profil efektif dalam mode Play, Anda harus secara teratur membuat build aplikasi Anda dan menyebarkannya ke berbagai perangkat target (baik perangkat spesifikasi tinggi dan rendah), dan menguji dan mencatat aplikasi Anda di perangkat ini. Jika Anda mengidentifikasi masalah kinerja dengan aplikasi Anda di perangkat ini, mempersempit daerah yang membutuhkan perhatian yang paling.
Anda kemudian dapat menprofilkan aplikasi Anda dalam mode Play dan cepat mengandalkan setiap perubahan yang Anda buat untuk aplikasi Anda. Anda dapat menggunakan informasi yang Anda dapatkan dari memprofilkan aplikasi Anda pada perangkat target untuk mengidentifikasi apakah ada perilaku serupa setelah memprofilkan aplikasi Anda dalam mode Play. Anda kemudian dapat membuat perubahan pada aplikasi dan profil Anda lagi dalam mode Play untuk dengan cepat melihat efek bahwa perubahan Anda dibuat. Setelah Anda puas dengan perubahan, membangun dan menyebarkan aplikasi Anda ke perangkat target lagi untuk memvalidasi perubahan Anda.
Untuk mengurangi jumlah pengukuran kebisingan dan menyesatkan dalam data profil yang membuat Editor saat menjalankan mode Play, modul CPU dan GPU Profiler membagi waktu mereka ke dalam yang terjadi pada PlayerLoop dan mereka yang terjadi pada EditorLoop. Unity menetapkan Profiler samplesSatu set data yang terkait dengan penanda Profiler, bahwa Profiler telah mencatat dan dikumpulkan.
Lihat di Glossary dari jenis ini dengan PlayerLoop and EditorLoop markers.
Ketika target Profiler Mode bermain, hanya mengumpulkan sampel waktu yang terjadi di dalam PlayerLoop.
Dikategorikan setiap sampel EditorLoop sebagai Others di Login Grafik modul profiler. Akibatnya, sampel EditorLoop adalah kontributor terbesar untuk kategori itu. Jika Anda ingin melihat apa yang dilakukan Editor dalam waktu ini dan juga mendapatkan rincian yang lebih rinci tentang apa yang berkontribusi pada kategori Others, mengubah target Profiler ke Editor.
Sitemap Jika Anda menggunakan mode Important:, dan target Play, memiliki dampak kinerja pada setiap panggilan fungsi yang terjadi di kedua PlayerLoop dan EditorLoop. Ini karena Deep Profileing kait ke awal dan akhir metode scripting apa pun yang disebut pada reload domain dan tidak mendeteksi bagian mana yang tidak pernah disebut dari PlayerLoop. Metode panggilan yang terjadi di EditorLoop tidak mengulang overhead penuh untuk membuat sampel, tetapi mereka masih memeriksa apakah mereka harus memancarkan satu, yang menyebabkan overhead yang lebih kecil tetapi masih ada.Profil, and target Play mode, it has a performance impact on every function call that happens in both PlayerLoop and EditorLoop. This is because Deep Profiling hooks into the beginning and end of any scripting method call on domain reload and it does not detect which parts are never called from the PlayerLoop. The method calls that happen in the EditorLoop don’t incur the full overhead of creating a sample, but they still check if they should emit one, which causes a smaller but still present overhead.
Ketika Anda mengubah target Profiler ke Editor, semua sampel yang sebelumnya tersembunyi di bawah penanda EditorLoop berkontribusi pada kategori masing-masing. Ini berarti bahwa informasi dalam panel detail modul profiler CPU dan grafiknya berubah secara signifikan.
Untuk profil waktu startup Editor, mulai Editor dengan opsi baris perintah -profiler-enable
.
Untuk mengurangi dampak bahwa jendela Profiler memiliki kinerja Editor, Anda dapat menggunakan Profiler Standalone, yang membuka jendela Profiler dalam prosesnya sendiri. Ini sangat berguna jika Anda memilih Editor sebagai target profil, atau Profil dalam aplikasi Anda, karena jendela Profiler sendiri biasanya menggunakan sumber daya yang mungkin skew data kinerja.
Ketika Anda mengakses aplikasi Anda, ada beberapa hal yang dapat Anda lakukan untuk memastikan konsistensi di sesi profil, dan untuk memastikan bahwa proses yang menggunakan Unity tidak mempengaruhi data profil Anda: