Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat melihat berapa banyak memori yang digunakan aplikasi Anda dan jalur kode apa yang mengalokasikan memori terbanyak dengan menggunakan alat Alokasi Objek .NET.
Setelah menjalankan alat, Anda dapat melihat jalur eksekusi fungsi tempat objek dialokasikan. Anda kemudian dapat melacak kembali ke akar pohon panggilan yang mengkonsumsi memori paling banyak.
Untuk tutorial yang menunjukkan cara meningkatkan performa menggunakan alat Alokasi Objek .NET, lihat Studi kasus: Panduan pemula untuk mengoptimalkan kode.
Pengaturan
Dalam proyek Visual Studio, atur konfigurasi solusi ke Rilis dan pilih target penyebaran.
Target penyebaran biasanya cocok dengan nama proyek, menunjukkan penyebaran lokal.
Pilih Alt+F2 untuk membuka Profiler Performa di Visual Studio.
Pilih kotak centang .NET Object Allocation Tracking.
Pilih tombol Mulai untuk menjalankan alat.
Jika Anda mengaktifkan opsi Mulai dengan koleksi yang dijeda sebelum memulai profiler, data tidak akan dikumpulkan hingga Anda memilih tombol Mulai Merekam dalam tampilan sesi diagnostik.
Setelah alat mulai berjalan, buka skenario yang ingin Anda profilkan di aplikasi Anda. Lalu pilih Hentikan pengumpulan atau tutup aplikasi Anda untuk melihat data Anda.
Pilih tab Alokasi. Data alokasi memori yang mirip dengan yang berikut ini muncul.
Anda sekarang dapat menganalisis alokasi memori objek.
Selama pengumpulan, alat pelacakan dapat memperlambat aplikasi yang diprofilkan. Jika performa alat pelacakan atau aplikasi lambat, dan jika Anda tidak perlu melacak setiap objek, Anda dapat menyesuaikan laju pengambilan sampel. Untuk melakukannya, pilih simbol roda gigi di samping alat pelacakan di halaman ringkasan profiler.
Sesuaikan laju pengambilan sampel dengan laju yang Anda inginkan. Perubahan ini membantu mempercepat performa aplikasi Anda selama pengumpulan dan analisis.
Untuk informasi selengkapnya tentang cara membuat alat lebih efisien, lihat Mengoptimalkan pengaturan Profiler.
Memahami data Anda
Dalam tampilan grafis berikut, grafik atas menunjukkan jumlah objek langsung di aplikasi Anda. Grafik delta Objek bagian bawah menunjukkan persentase perubahan objek aplikasi. Bilah merah menunjukkan kapan pengumpulan sampah terjadi.
Anda dapat memfilter data tabular untuk menampilkan aktivitas hanya untuk rentang waktu tertentu dengan memilih rentang waktu. Saat Anda melakukan ini, informasi yang muncul di tab dilingkup ke rentang waktu yang difilter.
Anda juga dapat memperbesar atau memperkecil grafik.
Wawasan
Jika ada wawasan yang muncul dalam tampilan Wawasan , gunakan tautan yang disediakan untuk mendapatkan informasi selengkapnya tentang masalah yang diidentifikasi.
Dapatkan bantuan AI
Jika Anda memiliki Copilot, Anda bisa mendapatkan bantuan AI saat melihat wawasan teratas. Copilot menyediakan informasi dan wawasan yang terkait dengan serangkaian wawasan performa tertentu. Dengan Copilot, Anda juga dapat mengajukan pertanyaan tentang objek menggunakan memori terbanyak, yang dapat membantu Anda menghasilkan kode yang lebih efisien atau hemat biaya.
Cuplikan layar tombol TanyaKan Salinan. muncul bahkan jika tidak ada wawasan performa tertentu yang diidentifikasi. Pilih Minta Copilot untuk mempelajari dari Copilot dan mulai mengajukan pertanyaan.
Alokasi
Tampilan Alokasi menunjukkan lokasi objek yang mengalokasikan memori dan berapa banyak memori yang dialokasikan objek tersebut.
Informasi berikut muncul dalam tampilan Alokasi:
Kolom Jenis adalah daftar kelas dan struktur yang menggunakan memori. Klik dua kali tipe untuk melihat backtrace-nya dalam bentuk pohon panggilan terbalik. Dalam tampilan Alokasi saja, Anda dapat melihat item dalam kategori yang dipilih yang menggunakan memori.
Kolom Alokasi memperlihatkan jumlah objek yang menggunakan memori dalam jenis atau fungsi alokasi tertentu. Kolom ini hanya muncul di tampilan Alokasi, Pohon Panggilan, dan Fungsi.
Byte dan Ukuran Rata-Rata (Byte) tidak muncul secara default. Untuk memperlihatkannya, klik kanan kolom Tipe atau Alokasi, lalu pilih opsi Byte dan Ukuran Rata-Rata (Byte) untuk menambahkannya ke bagan.
Dua kolom tersebut mirip dengan Total (Alokasi) dan Mandiri (Alokasi), kecuali memperlihatkan jumlah memori yang digunakan bukan jumlah objek yang menggunakan memori. Kolom ini hanya muncul dalam tampilan Alokasi.
Kolom Nama modul menunjukkan modul yang berisi fungsi atau proses yang sedang dipanggil.
Semua kolom ini dapat diurutkan. Untuk kolom Tipe dan Nama Modul , Anda dapat mengurutkan item menurut abjad dalam urutan naik atau menurun. Untuk Alokasi , Bytes, dan Ukuran Rata-Rata (Bytes), Anda dapat mengurutkan item berdasarkan peningkatan atau penurunan nilai numerik.
Simbol
Simbol berikut muncul di Alokasi, pohon panggilan, dan fungsi tab:
- Jenis nilai seperti bilangan bulat
- Koleksi jenis nilai seperti array bilangan bulat
- Jenis referensi seperti string
- Koleksi jenis referensi seperti array string
Pohon Panggilan
Tampilan Pohon Panggilan menunjukkan jalur eksekusi fungsi yang berisi objek yang mengalokasikan banyak memori.
Informasi berikut ini muncul di tampilan Pohon Panggilan :
- Kolom Nama Fungsi memperlihatkan proses atau nama fungsi yang berisi objek yang mengalokasikan memori. Tampilan didasarkan pada tingkat simpul yang Anda periksa.
- Kolom Total (Alokasi) dan Ukuran Total (Byte) menunjukkan jumlah objek yang dialokasikan dan jumlah memori yang digunakan oleh fungsi dan semua fungsi lain yang dipanggilnya. Kolom Ukuran Total (Byte) disembunyikan secara default.
- Kolom (Alokasi) Diri Sendiri dan Self-Size (Bita) menunjukkan jumlah objek yang dialokasikan dan jumlah memori yang digunakan oleh satu fungsi yang dipilih atau jenis alokasi.
- Kolom Ukuran Rata-Rata (Byte) memperlihatkan informasi yang sama seperti yang ada di tampilan Alokasi. Kolom ini disembunyikan secara default.
- Kolom Nama modul menunjukkan modul yang berisi fungsi atau proses yang sedang dipanggil.
Opsi tambahan yang muncul dalam tampilan Pohon Panggilan meliputi:
- Tombol Perluas Jalur Utama menyoroti jalur eksekusi fungsi yang berisi banyak objek yang mengalokasikan memori. Algoritma dimulai pada simpul yang Anda pilih dan menyoroti jalur alokasi terbanyak, memandu Anda dalam penyelidikan Anda.
- Tombol Tampilkan Jalur Panas memperlihatkan atau menyembunyikan simbol api yang menunjukkan simpul mana yang merupakan bagian dari jalur panas.
Functions
Tampilan Functions menunjukkan proses, modul, dan fungsi yang mengalokasikan memori.
tampilan Fungsi
Informasi yang muncul dalam tampilan Functions meliputi:
Kolom Nama memperlihatkan proses sebagai simpul pada tingkat tertinggi. Di bawah proses adalah modul, dan di bawahnya modul adalah fungsi.
Kolom berikut, yang memperlihatkan informasi yang sama seperti yang mereka lakukan di Alokasi dan pohon Panggilan tampilan:
- Total (Alokasi)
- Mandiri (Alokasi)
- Ukuran Total (Byte)
- Ukuran Mandiri (Byte)
- Ukuran Rata-Rata (Byte)
Koleksi
Tampilan Koleksi menunjukkan berapa banyak objek yang dikumpulkan atau disimpan selama pengumpulan sampah.
Informasi berikut ini muncul dalam tampilan Koleksi .
- Kolom GC menunjukkan ID pengumpulan sampah ini dalam siklus hidup eksekusi program.
- Kolom Generasi memperlihatkan Generasi dari pengumpulan sampah.
- Kolom Jenis GC menunjukkan jenis pengumpulan sampah ini.
- Kolom GC Reason menunjukkan alasan peristiwa pengumpulan sampah ini.
- Kolom Durasi Jeda menunjukkan waktu diblokirnya eksekusi karena pengumpul sampah membutuhkan penggunaan tumpukan secara eksklusif. Untuk pengumpulan sampah latar belakang, nilai ini kecil.
- Kolom Ukuran LOH menunjukkan ukuran Tumpukan Objek Besar setelah pengumpul sampah dijalankan.
- Kolom Ukuran POH menunjukkan ukuran Tumpukan Objek yang Disematkan setelah garbage collector dijalankan.
- Kolom Finalizable Surv (MB) menunjukkan jumlah MB dari objek yang memiliki finalizer (destruktor) yang bertahan setelah proses pengumpulan sampah.
- Kolom Objek Disematkan menunjukkan jumlah objek yang disematkan yang dipromosikan oleh pengumpulan sampah ini.
- Kolom Dikumpulkan menunjukkan jumlah objek yang terkumpul oleh pengumpul sampah.
- Kolom Survived menunjukkan jumlah objek yang tetap ada setelah proses pengumpulan sampah dilakukan.
Saat Anda memilih baris, tampilan ini juga memperlihatkan diagram pai untuk memvisualisasikan objek menurut jenis yang berhasil dikumpulkan dan bertahan.
Alat pemfilteran
Alokasi , Call Tree, dan Functions semuanya berisi opsi Tampilkan Kode Saya dan Tampilkan Kode Asli serta kotak filter.
- Tampilkan Just My Code menciutkan sistem, kerangka kerja, dan kode nonpengguna lainnya ke dalam bingkai [External Code] sehingga Anda dapat fokus hanya pada kode Anda. Untuk informasi selengkapnya, lihat Debug kode pengguna dengan Just My Code.
- Tampilkan Kode Asli menunjukkan kode asli dalam target analisis dan dapat menyertakan kode nonpengguna.
- Dengan kotak filter, Anda bisa memfilter kolom Nama atau Nama fungsi berdasarkan nilai yang Anda berikan. Masukkan nilai string dalam kotak. Tabel kemudian hanya memperlihatkan jenis yang berisi string tersebut.