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.
Temukan masalah performa saat Anda menelusuri kesalahan dengan alat diagnostik Penggunaan CPU yang terintegrasi debugger. Anda juga dapat menganalisis penggunaan CPU tanpa debugger yang dilampirkan atau dengan menargetkan aplikasi yang sedang berjalan. Untuk informasi selengkapnya, lihat Menjalankan alat pembuatan profil pada build rilis atau debug dan Menganalisis performa dengan menggunakan pembuatan profil CPU.
Saat debugger dihentikan, alat Penggunaan CPU di jendela Alat Diagnostik mengumpulkan informasi tentang fungsi yang dijalankan dalam aplikasi Anda. Alat ini mencantumkan fungsi yang melakukan pekerjaan, dan menyediakan grafik garis waktu yang dapat Anda gunakan untuk fokus pada segmen tertentu dari sesi pengambilan sampel.
Penting
Alat Diagnostik yang terintegrasi dengan debugger didukung untuk pengembangan .NET di Visual Studio, termasuk ASP.NET, ASP.NET Core, dan pengembangan native/C++. Beban kerja Visual Studio yang sesuai diperlukan. Windows 8 dan yang lebih baru diperlukan untuk menjalankan alat pembuatan profil dengan debugger (jendela Alat Diagnostik).
Dalam tutorial ini, Anda akan:
- Mengumpulkan data pemanfaatan CPU
- Menganalisis data pemanfaatan CPU
Langkah 1: Kumpulkan data pemanfaatan CPU
Buka proyek yang ingin Anda debug di Visual Studio dan atur titik henti di aplikasi Anda pada titik di mana Anda ingin memeriksa penggunaan CPU.
Atur titik henti kedua di akhir fungsi atau wilayah kode yang ingin Anda analisis.
Dengan mengatur dua titik henti, Anda dapat membatasi pengumpulan data ke bagian kode yang ingin Anda analisis.
Jendela Alat Diagnostik muncul secara otomatis kecuali Anda telah menonaktifkannya. Untuk memunculkan jendela lagi, klik Debug>Windows>Tampilkan Alat Diagnostik.
Anda dapat memilih apakah akan melihat Penggunaan CPU, Penggunaan Memori, atau keduanya, dengan pengaturan Pilih Alat pada toolbar. Jika Anda menjalankan Visual Studio Enterprise, Anda juga dapat mengaktifkan atau menonaktifkan IntelliTrace di Tools>Options>IntelliTrace.
Kami terutama akan melihat pemanfaatan CPU, jadi pastikan bahwa penggunaan CPU diaktifkan (diaktifkan secara default).
Klik Debug>Mulai Debugging (atau Mulai pada toolbar, atau F5).
Setelah aplikasi selesai dimuat, tampilan Ringkasan Alat Diagnostik muncul. Jika Anda perlu membuka jendela, klik Debug>Windows>Tampilkan Alat Diagnostik.
cuplikan layar

Untuk informasi selengkapnya tentang peristiwa, lihat Mencari dan memfilter tab Peristiwa di jendela Alat Diagnostik.
Jalankan skenario yang akan menyebabkan titik henti pertama Anda tercapai.
Saat debugger dijeda, aktifkan pengumpulan data Penggunaan CPU dan kemudian buka tab Penggunaan CPU.
Saat Anda memilih Rekam Profil CPU, Visual Studio akan mulai merekam fungsi Anda serta berapa lama waktu yang dibutuhkan untuk eksekusi. Anda hanya dapat melihat data yang dikumpulkan ini saat aplikasi Anda dihentikan pada titik henti.
Tekan F5 untuk menjalankan aplikasi hingga mencapai titik henti kedua.
Sekarang, Anda sekarang memiliki data performa untuk aplikasi Anda khusus untuk wilayah kode yang berjalan di antara dua titik henti.
Profiler mulai menyiapkan data utas. Tunggu sampai selesai.
Alat Penggunaan CPU menampilkan laporan di tab Penggunaan CPU.
Jika Anda ingin memilih wilayah kode yang lebih spesifik untuk dianalisis, pilih wilayah di garis waktu CPU (harus merupakan wilayah yang menampilkan data pembuatan profil).
Pada titik ini, Anda dapat mulai menganalisis data. Jika Anda mengalami masalah saat mengumpulkan atau menampilkan data, lihat Memecahkan masalah kesalahan pembuatan profil dan memperbaiki masalah.
Saran
Saat mencoba mengidentifikasi masalah performa, lakukan beberapa pengukuran. Performa secara alami dapat bervariasi dari satu eksekusi program ke eksekusi lainnya, dan jalur kode biasanya dieksekusi lebih lambat saat pertama kali dijalankan karena pekerjaan inisialisasi satu kali seperti memuat ulang DLL, metode kompilasi JIT, dan menginisialisasi cache. Dengan mengambil beberapa pengukuran, Anda mendapatkan gambaran yang lebih baik tentang rentang dan median metrik yang ditampilkan, yang memungkinkan Anda membandingkan pertama kalinya versus performa status stabil dari area kode.
Langkah 2: Menganalisis data pemanfaatan CPU
Kami menyarankan agar Anda mulai menganalisis data Anda dengan memeriksa daftar fungsi di bawah Penggunaan CPU, mengidentifikasi fungsi yang melakukan pekerjaan paling banyak, lalu melihat lebih dekat masing-masing fungsi.
Dalam daftar fungsi, periksa fungsi yang melakukan pekerjaan paling banyak.
Saran
Fungsi dicantumkan secara berurutan dimulai dengan yang melakukan pekerjaan terbanyak (tidak dalam urutan panggilan). Ini membantu Anda dengan cepat mengidentifikasi fungsi yang berjalan paling lama.
Dalam daftar fungsi, klik dua kali salah satu fungsi aplikasi Anda yang melakukan banyak pekerjaan.
Ketika Anda mengklik fungsi dua kali, tampilan Functions terbuka di panel kiri. Pilih tampilan Penelepon/Penerima Panggilan dari menu drop-down.
Dalam tampilan ini, fungsi yang dipilih muncul di judul dan dalam kotak Fungsi Saat Ini (DoWork, dalam contoh ini). Fungsi yang memanggil fungsi saat ini ditampilkan di sebelah kiri di bawah Fungsi Panggilan, dan fungsi apa pun yang dipanggil oleh fungsi saat ini ditampilkan dalam kotak Fungsi yang Dipanggil di sebelah kanan. (Anda dapat memilih salah satu kotak untuk mengubah fungsi saat ini.)
Tampilan ini menunjukkan kepada Anda total waktu (ms) dan persentase waktu berjalan aplikasi keseluruhan yang telah diambil fungsi untuk diselesaikan. Function Body juga menunjukkan jumlah total waktu (dan persentase waktu) yang dihabiskan dalam tubuh fungsi, dengan pengecualian waktu yang dihabiskan dalam fungsi pemanggil dan fungsi yang dipanggil.
Saran
Nilai tinggi dalam Function Body dapat menunjukkan hambatan performa dalam fungsi itu sendiri.
Untuk melihat tampilan tingkat yang lebih tinggi yang memperlihatkan urutan fungsi dipanggil, pilih Pohon Panggilan dari daftar drop-down di bagian atas panel.
Setiap area bernomor dalam gambar berkaitan dengan langkah dalam prosedur.
Alat Diagnostik

Gambar Deskripsi
Simpul teratas pada pohon panggilan penggunaan CPU yang mewakili aplikasi.
Di sebagian besar aplikasi, ketika opsi Tampilkan Kode Eksternal dinonaktifkan, simpul tingkat kedua adalah simpul [Kode Eksternal] yang berisi sistem dan kode kerangka kerja yang memulai dan menghentikan aplikasi, menarik UI, mengontrol penjadwalan utas, dan menyediakan layanan tingkat rendah lainnya ke aplikasi.
Anak-anak simpul tingkat kedua adalah metode kode pengguna dan rutinitas asinkron yang dipanggil atau dibuat oleh sistem tingkat kedua dan kode kerangka kerja.
Simpul anak dari suatu metode hanya berisi data terkait panggilan metode induk tersebut. Saat Tampilkan Kode Eksternal dinonaktifkan, metode aplikasi juga dapat berisi simpul [Kode Eksternal]. Berikut adalah informasi selengkapnya tentang nilai kolom:
Total CPU menunjukkan berapa banyak pekerjaan yang dilakukan oleh fungsi dan fungsi apa pun yang disebut olehnya. Total nilai CPU tinggi menunjuk ke fungsi yang paling mahal secara keseluruhan.
Self CPU menunjukkan berapa banyak pekerjaan yang dilakukan oleh kode dalam isi fungsi, tidak termasuk pekerjaan yang dilakukan oleh fungsi yang dipanggil olehnya. Nilai CPU Mandiri tinggi dapat menunjukkan hambatan performa dalam fungsi itu sendiri.
Modul Nama modul yang berisi fungsi, atau jumlah modul yang berisi fungsi dalam simpul [Kode Eksternal].
Untuk melihat panggilan fungsi yang menggunakan persentase CPU tertinggi dalam tampilan pohon panggilan, klik Perluas Jalur Utama. Jalur panas dapat membantu memfokuskan penyelidikan Anda pada area yang akan berdampak paling besar.
Nota
Jika Anda melihat kode di pohon panggilan yang ditandai sebagai "kode rusak" atau "tumpukan yang tidak dapat dilacak", ini menunjukkan bahwa peristiwa Event Tracing for Windows (ETW) kemungkinan besar terlewat. Coba kumpulkan jejak yang sama untuk kedua kalinya untuk menyelesaikan masalah.
Untuk melihat tampilan data yang berbeda, pilih Flame Graph dari daftar drop-down di bagian atas panel.
Grafik api menyediakan visualisasi pohon panggilan yang berbeda yang dapat membantu Anda menganalisis data. Untuk informasi selengkapnya, lihat Mengidentifikasi jalur panas dengan grafik api.
Untuk melihat tampilan data yang dikumpulkan oleh fungsi atau modul, pilih Modul Functions atau dari daftar drop-down di bagian atas panel.
Tampilan ini membantu mengidentifikasi fungsi atau modul yang mungkin menjadi hambatan performa karena kombinasi jumlah panggilan tinggi dan/atau masalah performa.
Menampilkan kode eksternal
Kode eksternal adalah fungsi dalam komponen sistem dan kerangka kerja yang dijalankan oleh kode yang Anda tulis. Kode eksternal mencakup fungsi yang memulai dan menghentikan aplikasi, menggambar UI, mengontrol utas, dan menyediakan layanan tingkat rendah lainnya ke aplikasi. Dalam kebanyakan kasus, Anda tidak akan tertarik dengan kode eksternal, sehingga alat Penggunaan CPU mengumpulkan fungsi eksternal dari metode pengguna ke dalam satu simpul [Panggilan Eksternal].
Jika Anda ingin melihat jalur panggilan kode eksternal, batalkan pilihan Tampilkan Hanya Kode Saya dari daftar Pengaturan lalu pilih Terapkan.
Ketahuilah bahwa banyak rantai panggilan kode eksternal disarangkan secara mendalam, sehingga lebar kolom Nama Fungsi dapat melebihi lebar tampilan kecuali monitor komputer yang paling besar. Ketika ini terjadi, nama fungsi ditampilkan sebagai [...].
Gunakan kotak pencarian untuk menemukan simpul yang Anda cari, lalu gunakan bilah gulir horizontal untuk menampilkan data.
Saran
Jika Anda membuat profil kode eksternal yang memanggil fungsi Windows, Anda harus memastikan bahwa Anda memiliki .file pdb. Tanpa file-file ini, tampilan laporan Anda akan mencantumkan nama fungsi Windows yang samar dan sulit dipahami. Untuk informasi selengkapnya tentang cara memastikan bahwa Anda memiliki file yang Anda butuhkan, lihat Tentukan simbol (.pdb) dan file sumber di debugger.
Langkah berikutnya
Dalam tutorial ini, Anda telah mempelajari cara mengumpulkan dan menganalisis data penggunaan CPU. Jika Anda sudah menyelesaikan tur dari profiler, Anda mungkin ingin mencoba tutorial yang menjelaskan cara menggunakan alat-alat tersebut dengan lebih efektif.
Dalam tutorial ini, Anda telah mempelajari cara mengumpulkan dan menganalisis data penggunaan CPU saat debugging. Anda mungkin ingin mengetahui lebih lanjut tentang pembuatan profil rilis menggunakan Profiler Performa.
Menganalisis penggunaan CPU di Performance Profiler