Pertama-tama lihat alat pembuatan profil (C#, Visual Basic, C++, F#)
Alat pengukuran performa aplikasi sangat penting bagi pengembang yang ingin mengoptimalkan kode mereka dan meningkatkan performa aplikasi. Visual Studio menawarkan berbagai alat pembuatan profil dan diagnostik yang dapat membantu Anda mendiagnosis penggunaan memori dan CPU serta masalah tingkat aplikasi lainnya. Dengan alat-alat ini, Anda dapat mengakumulasi data performa saat menjalankan aplikasi. Profiler dapat membantu Anda membuat keputusan berdasarkan informasi dengan cepat dengan memberikan penggambaran visual waktu eksekusi dan penggunaan CPU untuk aplikasi Anda. Dalam artikel ini, kami melihat sekilas alat pembuatan profil yang paling umum.
Untuk bantuan dalam memilih alat yang benar, atau untuk melihat dukungan alat pembuatan profil untuk berbagai jenis aplikasi, lihat Alat mana yang harus saya gunakan? Untuk tutorial yang menunjukkan pendekatan umum untuk mengoptimalkan kode menggunakan alat pembuatan profil, lihat Studi kasus: Panduan pemula untuk mengoptimalkan kode.
Untuk pengalaman terbaik dengan dokumentasi ini, pilih bahasa pengembangan atau runtime pilihan Anda dari daftar di bagian atas artikel.
Mengukur performa dalam build rilis
Alat dalam Profiler Performa dimaksudkan untuk memberikan analisis untuk rilis build. Di Profiler Performa, Anda dapat mengumpulkan info diagnostik saat aplikasi berjalan, lalu memeriksa informasi yang dikumpulkan setelah aplikasi dihentikan (analisis pasca-mortem).
Buka Profil Performa dengan memilih Debug>Profiler Performa (atau Alt + F2).
Untuk informasi selengkapnya tentang menggunakan alat Penggunaan CPU atau Penggunaan Memori di Profiler Kinerja dibandingkan dengan alat yang terintegrasi dengan debugger, lihat Menjalankan alat pembuatan profil pada build rilis atau debug.
Alat yang tersedia di Profiler Performa meliputi:
Untuk melihat dukungan alat pembuatan profil untuk berbagai jenis aplikasi, lihat Alat mana yang harus saya gunakan?.
Dalam beberapa skenario, jendela ini memberi Anda pilihan untuk memilih beberapa alat profil . Alat seperti Penggunaan CPU dapat menyediakan data pelengkap yang dapat Anda gunakan untuk membantu dalam analisis Anda. Anda juga dapat menggunakan profiler baris perintah untuk mengaktifkan skenario yang melibatkan beberapa alat pelacakan.
Mengukur performa saat debugging
Alat pembuatan profil yang dapat Anda akses selama sesi penelusuran kesalahan tersedia di jendela Alat Diagnostik. Jendela Alat Diagnostik muncul secara otomatis kecuali Anda telah menonaktifkannya. Untuk memunculkan jendela, klik Debug / Windows / Tampilkan Alat Diagnostik (atau tekan Ctrl + Alt + F2). Dengan jendela terbuka, Anda dapat memilih alat yang ingin Anda kumpulkan datanya.
Jendela Alat Diagnostik
Saat menelusuri kesalahan, Anda dapat menggunakan jendela Alat Diagnostik untuk menganalisis CPU, penggunaan memori, dan penghitung .NET, serta melihat peristiwa yang menampilkan informasi terkait performa.
Jendela Alat Diagnostik
Saat menelusuri kesalahan, Anda dapat menggunakan jendela Alat Diagnostik untuk menganalisis penggunaan CPU dan memori, serta melihat peristiwa yang menampilkan informasi terkait performa.
Jendela Alat Diagnostik adalah cara umum untuk membuat profil aplikasi, tetapi untuk Build rilis, Anda juga dapat melakukan analisis pasca-mortem aplikasi Anda sebagai gantinya. Untuk informasi selengkapnya tentang pendekatan yang berbeda, lihat gunakan alat pemprofilan pada build yang dirilis atau debug. Untuk melihat dukungan alat pembuatan profil untuk berbagai jenis aplikasi, lihat Alat mana yang harus saya gunakan?.
Alat yang tersedia di jendela Alat Diagnostik atau selama sesi debugging meliputi:
Tips
Gunakan peluncuran ulang untuk melewati halaman peluncuran dan secara otomatis berjalan dengan pengaturan Anda sebelumnya dengan menekan Alt+F2 atau dengan mengklik Debug > Performance Profiler.
Nota
Windows 8 dan yang lebih baru diperlukan agar dapat menjalankan alat pemprofilan dengan debugger (jendela Alat Diagnostik).
Menganalisis penggunaan CPU
Alat Penggunaan CPU adalah tempat yang baik untuk mulai menganalisis performa aplikasi Anda. Ini akan memberi tahu Anda lebih lanjut tentang sumber daya CPU yang digunakan aplikasi Anda. Anda dapat menggunakan alat Penggunaan CPU terintegrasi debugger atau alat Penggunaan CPU pasca-mortem .
Saat menggunakan alat Pemakaian CPU yang terintegrasi dengan debugger, buka jendela Alat Diagnostik (jika ditutup, pilih Debug / Windows / Tampilkan Alat Diagnostik). Saat penelusuran kesalahan, buka tampilan Ringkasan, dan pilih Rekam Profil CPU.
Salah satu cara untuk menggunakan alat ini adalah dengan mengatur dua titik henti dalam kode Anda, satu di awal dan satu di akhir fungsi atau wilayah kode yang ingin Anda analisis. Periksa data pembuatan profil saat Anda sedang berhenti pada titik henti kedua.
Tampilan Penggunaan CPU menunjukkan daftar fungsi yang diurutkan berdasarkan waktu berjalan terlama, dengan fungsi yang berjalan paling lama di bagian atas di bawah Fungsi Teratas. Bagian Hot Path menunjukkan tumpukan panggilan untuk fungsi yang paling banyak menggunakan CPU. Daftar ini dapat membantu memandu Anda ke fungsi di mana penyempitan performa terjadi.
Tampilan Penggunaan CPU menunjukkan daftar fungsi yang diurutkan berdasarkan waktu eksekusi terlama, dengan fungsi terlama di bagian atas. Ini dapat membantu memandu Anda ke fungsi di mana penyempitan performa terjadi.
Klik fungsi yang Anda minati, dan Anda akan melihat tampilan pohon panggilan lebih rinci, dengan fungsi yang dipilih disorot. Tabel memperlihatkan kolom dengan data seperti waktu yang dihabiskan dalam fungsi, termasuk fungsi yang disebut (Total CPU), dan kolom kedua yang menunjukkan waktu yang dihabiskan dalam fungsi, tidak termasuk fungsi yang disebut (CPU Mandiri). Data ini dapat membantu Anda mengevaluasi apakah fungsi itu sendiri merupakan penyempitan performa.
Tips
Profiler Visual Studio mendukung pengumpulan dan melihat jejak. Profiler juga dapat melihat jejak yang telah dikumpulkan sebelumnya oleh alat lain, seperti dotnet-trace. Dotnet-trace menghasilkan hasil pengambilan sampel, bukan jejak berinstrumentasi. Untuk informasi selengkapnya, lihat dotnet-trace .
pemanggil Alat Diagnostik
Klik pada fungsi yang Anda minati, dan Anda akan melihat tampilan "kupu-kupu" tiga panel yang lebih rinci, dengan fungsi yang dipilih di tengah jendela, fungsi pemanggil di sebelah kiri, dan fungsi yang dipanggil di sebelah kanan. Bagian Isi Fungsi menunjukkan jumlah total waktu (dan persentase waktu) yang dihabiskan dalam isi fungsi tidak termasuk waktu yang dihabiskan untuk memanggil dan fungsi yang dipanggil. Data ini dapat membantu Anda mengevaluasi apakah fungsi itu sendiri merupakan penyempitan performa.
Alat Diagnostik
Menganalisis penggunaan memori
Jendela Alat Diagnostik juga memungkinkan Anda mengevaluasi penggunaan memori di aplikasi Anda menggunakan alat Penggunaan Memori. Misalnya, Anda dapat melihat jumlah dan ukuran objek pada timbunan. Anda dapat menggunakan alat Penggunaan Memori terintegrasi debugger atau alat Penggunaan Memori pasca-mortem di Profiler Performa.
Pengembang .NET dapat memilih antara alat Alokasi Objek .NET atau alat Penggunaan Memori .
- Alat Alokasi Objek .NET membantu Anda mengidentifikasi pola alokasi dan anomali dalam kode .NET Anda, dan membantu mengidentifikasi masalah umum dengan pengumpulan sampah. Alat ini hanya berfungsi sebagai alat post-mortem. Anda dapat menjalankan alat ini pada komputer lokal atau jarak jauh.
- Alat penggunaan Memori sangat membantu dalam mengidentifikasi kebocoran memori, yang tidak umum ditemukan di aplikasi .NET. Jika Anda perlu menggunakan fitur debugger saat memeriksa memori, seperti melangkah melalui kode, disarankan menggunakan alat penggunaan Memori terintegrasi debugger .
Untuk menganalisis penggunaan memori dengan alat Penggunaan Memori, Anda perlu mengambil setidaknya satu rekam jepret memori. Seringkali, cara terbaik untuk menganalisis memori adalah dengan mengambil dua rekam jepret; yang pertama tepat sebelum masalah memori yang dicurigai, dan rekam jepret kedua tepat setelah masalah memori yang dicurigai terjadi. Kemudian Anda dapat melihat diff dari dua rekam jepret dan melihat persis apa yang berubah. Ilustrasi berikut menunjukkan pengambilan rekam jepret dengan alat terintegrasi debugger.
Saat Anda memilih salah satu tautan panah, Anda diberi tampilan diferensial tumpukan (panah merah ke atas menunjukkan peningkatan jumlah objek (kiri) atau ukuran timbunan yang meningkat (kanan)). Jika Anda mengklik tautan kanan, Anda mendapatkan tampilan tumpukan diferensial yang diurutkan berdasarkan objek yang meningkatkan ukuran tumpukan terbanyak. Ini dapat membantu Anda menentukan masalah memori. Misalnya, dalam ilustrasi di bawah ini, byte yang digunakan oleh objek
ClassHandlersStore
meningkat sebesar 3.492 byte dalam rekam jepret kedua.
Jika Anda mengklik tautan di sebelah kiri sebagai gantinya dalam tampilan Penggunaan Memori, tampilan timbunan diatur menurut jumlah objek; objek dari jenis tertentu yang meningkatkan jumlah terbanyak diperlihatkan di bagian atas (diurutkan menurut kolom Count Diff).
Instrumentasi
Alat Instrumentasi mirip dengan alat Penggunaan CPU, kecuali bahwa alat ini menyediakan jumlah panggilan dan waktu jam dinding yang tepat alih-alih pemanfaatan CPU. Metode instrumentasi membutuhkan lebih banyak overhead daripada alat Penggunaan CPU. Alat ini tersedia di Profiler Performa. Buka Profiler Performa dengan memilih Debug>Profiler Performa (atau Alt + F2). Untuk informasi selengkapnya, lihat Instrumentasi.
Memeriksa I/O File
Alat I/O File membantu Anda memahami bagaimana Anda dapat mengoptimalkan operasi I/O File untuk meningkatkan performa di aplikasi Anda. Jika Anda mencoba menyelidiki dan mendiagnosis waktu pemuatan yang lambat, alat File IO baru dapat membantu Anda memahami bagaimana operasi I/O memengaruhi waktu yang Anda habiskan. Alat ini tersedia di Profiler Performa. Buka Profiler Performa dengan memilih Debug > Performance Profiler (atau Alt + F2).
Alat ini menunjukkan operasi baca file dan penulisan file dalam tampilan daftar bertab.
Memeriksa performa menggunakan PerfTips
Seringkali, cara termudah untuk melihat informasi kinerja adalah dengan menggunakan PerfTips. Dengan menggunakan PerfTips, Anda dapat melihat informasi performa saat berinteraksi dengan kode Anda. Anda dapat memeriksa informasi seperti durasi peristiwa (diukur dari kapan debugger terakhir dijeda, atau saat aplikasi dimulai). Misalnya, jika Anda menelusuri kode (F10, F11), PerfTips menunjukkan durasi runtime aplikasi dari operasi langkah sebelumnya ke langkah saat ini.
Anda dapat menggunakan PerfTips untuk memeriksa berapa lama waktu yang dibutuhkan blok kode untuk dijalankan, atau berapa lama waktu yang diperlukan untuk satu fungsi selesai.
PerfTips memperlihatkan peristiwa yang sama yang juga muncul dalam tampilan Peristiwa Alat Diagnostik. Dalam tampilan Peristiwa, Anda dapat melihat berbagai peristiwa yang terjadi saat Anda melakukan debugging, seperti pengaturan titik henti atau operasi langkah kode.
Nota
Jika Anda memiliki Visual Studio Enterprise, Anda juga dapat melihat peristiwa IntelliTrace di tab ini.
Menganalisis kode asinkron (.NET)
Alat .NET Async memungkinkan Anda menganalisis performa kode asinkron dalam aplikasi Anda. Alat ini tersedia di Profiler Performa. Buka Profiler Performa dengan memilih Debug>Profiler Performa (atau Alt + F2).
Alat ini menunjukkan setiap operasi asinkron dalam tampilan daftar. Anda dapat melihat informasi seperti waktu mulai, waktu akhir, dan total waktu untuk operasi asinkron.
Alat ini didukung untuk aplikasi .NET Core dan .NET 5+.
Menganalisis kode asinkron (.NET)
Alat .NET Async memungkinkan Anda menganalisis performa kode asinkron dalam aplikasi Anda. Alat ini tersedia di Profiler Performa. Buka Profiler Performa dengan memilih Debug>Profiler Performa (atau Alt + F2).
Alat ini menunjukkan setiap operasi asinkron dalam tampilan daftar. Anda dapat melihat informasi seperti waktu mulai, waktu akhir, dan total waktu untuk operasi asinkron.
Alat ini didukung untuk aplikasi .NET Core dan .NET 5+.
Menganalisis performa database (.NET)
Untuk aplikasi .NET Core dan .NET 5+ yang menggunakan ADO.NET atau Entity Framework Core, alat Database memungkinkan Anda merekam kueri database yang dilakukan aplikasi Anda selama sesi diagnostik. Anda kemudian dapat menganalisis informasi tentang kueri individual untuk menemukan tempat di mana performa aplikasi Anda dapat ditingkatkan. Alat ini tersedia di Profiler Performa. Buka Performance Profiler dengan memilih Debug>Performance Profiler (atau Alt + F2).
Alat ini memperlihatkan setiap kueri dalam tampilan daftar. Anda dapat melihat informasi seperti waktu mulai dan durasi kueri.
Memvisualisasikan penghitung .NET (.NET)
Mulai visual Studio 2019 versi 16.7, Anda dapat menggunakan alat .NET Counters di Visual Studio untuk memvisualisasikan penghitung performa. Anda dapat memvisualisasikan penghitung yang dibuat menggunakan penghitung dotnet . dotnet counters mendukung berbagai fungsi seperti pemakaian CPU dan ukuran heap pengumpul sampah.
Alat ini menunjukkan nilai langsung untuk setiap penghitung dalam tampilan daftar.
Alat ini didukung untuk aplikasi .NET Core dan .NET 5+.
Memeriksa peristiwa-peristiwa aplikasi
Penampil peristiwa generik memungkinkan Anda melihat aktivitas aplikasi Anda melalui daftar peristiwa, seperti beban modul, mulai utas, dan konfigurasi sistem, untuk membantu mendiagnosis performa aplikasi Anda dengan lebih baik dalam profiler Visual Studio. Alat ini tersedia di Profiler Performa. Buka Profiler Performa dengan memilih Debug>Profiler Performa (atau Alt + F2).
Alat ini menunjukkan setiap peristiwa dalam tampilan daftar. Kolom menyediakan informasi tentang setiap peristiwa, seperti nama peristiwa, tanda waktu, dan ID proses.
Jejak Pemandu Peristiwa
Menampilkan peristiwa kustom dalam grafik garis waktu
Anda dapat secara terprogram membuat peristiwa kustom yang muncul sebagai ikon dalam grafik garis waktu seperti pemanfaatan CPU dan grafik garis waktu penggunaan memori. Untuk informasi selengkapnya, lihat Tambahkan tanda pengguna ke garis waktu.
Menganalisis konsumsi sumber daya (XAML)
Di aplikasi XAML, seperti aplikasi WPF desktop Windows dan aplikasi UWP, Anda dapat menganalisis konsumsi sumber daya menggunakan alat Garis Waktu Aplikasi. Misalnya, Anda dapat menganalisis waktu yang dihabiskan oleh aplikasi Anda yang menyiapkan bingkai UI (tata letak dan render), melayani permintaan jaringan dan disk, dan dalam skenario seperti pengaktifan aplikasi, beban halaman, dan Mengubah ukuran Jendela. Untuk menggunakan alat ini, pilih Garis Waktu Aplikasi di Profiler Performa, lalu pilih Mulai. Di aplikasi Anda, lanjutkan skenario dengan dugaan masalah konsumsi sumber daya, lalu pilih Hentikan pengumpulan untuk membuat laporan.
Framerate rendah dalam grafik throughput visual mungkin sesuai dengan masalah visual yang bisa Anda lihat saat menjalankan aplikasi Anda. Demikian pula, angka tinggi dalam grafik pemanfaatan utas UI juga dapat sesuai dengan masalah responsI UI. Dalam laporan, Anda dapat memilih periode waktu dengan masalah performa yang dicurigai, lalu memeriksa aktivitas utas UI terperinci dalam tampilan Detail garis waktu (panel bawah).
Dalam tampilan Detail garis waktu, Anda dapat menemukan informasi seperti jenis aktivitas (atau elemen UI yang terlibat) bersama dengan durasi aktivitas. Misalnya, dalam ilustrasi, peristiwa Tata Letak untuk kontrol Grid membutuhkan waktu 57,53 ms.
Untuk informasi selengkapnya, lihat Garis Waktu Aplikasi.
Memeriksa peristiwa performa dan aksesibilitas UI (UWP)
Di aplikasi UWP Anda, Anda dapat mengaktifkan Analisis UI di jendela Alat Diagnostik. Alat ini mencari masalah performa atau aksesibilitas umum dan menampilkannya dalam tampilan Peristiwa saat Anda debugging. Deskripsi peristiwa menyediakan informasi yang dapat membantu mengatasi masalah.
Menganalisis Penggunaan GPU (Direct3D)
Di aplikasi Direct3D (komponen Direct3D harus berada di C++), Anda dapat memeriksa aktivitas pada GPU dan menganalisis masalah performa. Untuk informasi selengkapnya, lihat Penggunaan GPU. Untuk menggunakan alat ini, pilih Penggunaan GPU di Profiler Performa, lalu pilih Mulai. Di aplikasi Anda, jalani skenario yang ingin Anda profilkan, lalu pilih hentikan pengumpulan untuk membuat laporan.
Saat Anda memilih periode waktu dalam grafik dan memilih menampilkan detail, tampilan terperinci muncul di panel bawah. Dalam tampilan terperinci, Anda dapat memeriksa berapa banyak aktivitas yang terjadi pada setiap CPU dan GPU. Pilih peristiwa di panel terendah untuk mendapatkan popup di garis waktu. Misalnya, pilih peristiwa Sajikan untuk melihat popup panggilan Sajikan. (Garis vertikal VSync abu-abu muda dapat digunakan sebagai referensi untuk memahami apakah panggilan Present tertentu terlewatkan dari VSync. Harus ada satu panggilan Present di antara setiap dua VSync agar aplikasi dapat stabil mencapai 60 FPS.)
alat pembuatan profil Penggunaan GPU
Anda juga dapat menggunakan grafik untuk menentukan apakah ada hambatan performa terikat CPU atau terikat GPU.
Menganalisis performansi (alat lama)
Di Visual Studio 2019, Penjelajah Kinerja lama dan alat pembuat profil terkait seperti Panduan Kinerja dilipat menjadi Profiler Kinerja, yang dapat Anda buka menggunakan Debug>Profiler Kinerja. Di Profiler Performa, alat diagnostik yang tersedia bergantung pada target yang dipilih dan proyek startup terbuka saat ini. Alat Penggunaan CPU menyediakan kemampuan pengambilan sampel yang sebelumnya didukung dalam Wizard Performa. Alat Instrumentasi menyediakan kemampuan pembuatan profil berinstrumentasi (untuk jumlah dan durasi panggilan yang tepat) yang ada di Wizard Performa. Alat memori tambahan juga muncul di Profiler Performa.
Alat Performance Explorer