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 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 akan sedikit membahas 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.
Mengukur performa dalam build rilis
Alat dalam Profiler Performa dimaksudkan guna memberikan analisis untuk build Rilis. Di Profiler Performa, Anda dapat mengumpulkan info diagnostik saat aplikasi berjalan, lalu memeriksa informasi yang dikumpulkan setelah aplikasi dihentikan (analisis pasca-mortem).
Buka Profiler Performa dengan memilih Debug>Profiler Performa (atau Alt + F2).
Untuk informasi selengkapnya tentang menggunakan alat Penggunaan CPU atau penggunaan Memori di Profiler Performa vs. alat yang terintegrasi dengan debugger, lihat Menjalankan alat pembuatan profil dengan atau tanpa debugger.
Alat yang tersedia di Profiler Performa meliputi:
- Penggunaan CPU
- Alokasi objek .NET
- Penggunaan memori
- Instrumentasi
- Alat .NET async
- File I/O
- .NET Counters
- Alat database
- Penggunaan GPU
Untuk melihat dukungan alat pembuatan profil untuk jenis aplikasi yang berbeda, lihat Alat mana yang harus saya gunakan?.
Dalam beberapa skenario, jendela memungkinkan Anda memilih beberapa alat pembuatan 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 pembuatan profil.
Mengukur performa saat penelusuran kesalahan
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). Saat jendela terbuka, Anda dapat memilih alat yang ingin Anda kumpulkan datanya.
Saat menelusuri kesalahan, Anda dapat menggunakan jendela Alat Diagnostik untuk menganalisis CPU, penggunaan memori, penghitung .NET, dan Anda dapat melihat peristiwa yang menampilkan informasi terkait performa.
Saat melakukan penelusuran kesalahan, Anda dapat menggunakan jendela Alat Diagnostik untuk menganalisis penggunaan CPU dan memori, dan Anda dapat melihat peristiwa yang menampilkan informasi terkait performa.
Jendela Alat Diagnostik adalah cara umum untuk memprofilkan aplikasi, tetapi untuk build Rilis, Anda juga dapat melakukan analisis pasca-mortem aplikasi Anda sebagai gantinya. Untuk informasi selengkapnya tentang pendekatan yang berbeda, lihat Menjalankan alat pembuatan profil dengan atau tanpa debugger. Untuk melihat dukungan alat pembuatan profil untuk jenis aplikasi yang berbeda, lihat Alat mana yang harus saya gunakan?.
Alat yang tersedia di jendela Alat Diagnostik atau selama sesi penelusuran kesalahan meliputi:
Tip
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.
Catatan
Windows 8 dan yang lebih baru diperlukan untuk menjalankan alat pemrofilan dengan penelusur kesalahan (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 yang terintegrasi dengan debugger atau alat Penggunaan CPU pasca-mortem.
Saat menggunakan alat Penggunaan CPU yang terintegrasi debugger, buka jendela Alat Diagnostik (jika ditutup, pilih Debug / Windows / Tampilkan Alat Diagnostik). Saat men-debug, 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 dijeda pada titik henti kedua.
Tampilan Penggunaan CPU memperlihatkan kepada Anda daftar fungsi yang berdasarkan yang paling lama berjalan, dengan fungsi yang paling lama berjalan di bagian atas di bawah Fungsi Teratas. Bagian Jalur Panas menunjukkan tumpukan panggilan untuk fungsi yang menggunakan CPU terbanyak. Daftar ini dapat membantu memandu Anda ke fungsi di mana hambatan performa terjadi.
Tampilan Penggunaan CPU memperlihatkan daftar fungsi yang diurutkan dengan berjalan paling lama, dengan fungsi terlama di bagian atas. Ini dapat membantu memandu Anda ke fungsi di mana hambatan performa terjadi.
Klik fungsi yang Anda minati, dan Anda akan melihat tampilan pohon Panggilan yang 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 memperlihatkan waktu yang dihabiskan dalam fungsi, tidak termasuk fungsi yang disebut (CPU Mandiri). Data ini dapat membantu Anda mengevaluasi apakah fungsi itu sendiri merupakan hambatan performa.
Tip
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.
Klik fungsi yang Anda minati, dan Anda akan melihat tampilan "kupu-kupu" tiga panel yang lebih rinci, dengan fungsi yang dipilih di tengah jendela, fungsi panggilan di sebelah kiri, dan disebut fungsi di sebelah kanan. Isi Fungsi juga menunjukkan kepada Anda jumlah total waktu (dan persentase waktu) yang dihabiskan dalam isi fungsi tidak termasuk waktu yang dihabiskan dalam fungsi panggilan dan fungsi yang dipanggil. Data ini dapat membantu Anda mengevaluasi apakah fungsi itu sendiri merupakan hambatan performa.
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 tumpukan. Anda dapat menggunakan alat Penggunaan Memori yang 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 berjalan sebagai alat pasca-mortem. Anda dapat menjalankan alat ini pada komputer lokal atau jarak jauh.
- Alat Penggunaan memori sangat membantu dalam mengidentifikasi kebocoran memori, yang biasanya tidak umum di aplikasi .NET. Jika Anda perlu menggunakan fitur debugger saat memeriksa memori, seperti melangkah melalui kode, alat penggunaan Memori terintegrasi debugger disarankan.
Untuk menganalisis penggunaan memori dengan alat Penggunaan Memori, Anda perlu mengambil setidaknya satu snapshot memori. Sering kali, cara terbaik untuk menganalisis memori adalah dengan mengambil dua snapshot; yang pertama tepat sebelum masalah memori yang dicurigai, dan snapshot kedua tepat setelah dugaan masalah memori terjadi. Kemudian Anda dapat melihat perbedaan dari dua snapshot dan melihat dengan tepat apa yang berubah. Ilustrasi berikut menunjukkan pengambilan snapshot dengan alat terintegrasi debugger.
Saat Anda memilih salah satu tautan panah, Anda diberi tampilan diferensial tumpukan (panah merah ke atas memperlihatkan jumlah objek yang meningkat (kiri) atau ukuran tumpukan yang meningkat (kanan)). Jika Anda mengeklik tautan yang tepat, Anda mendapatkan tampilan tumpukan diferensial yang diurutkan berdasarkan objek yang meningkatkan ukuran tumpukan terbanyak. Tampilan ini dapat membantu Anda menentukan masalah memori. Misalnya, dalam ilustrasi di bawah ini, byte yang digunakan oleh objek ClassHandlersStore
meningkat sebesar 3.492 byte di snapshot kedua.
Jika Anda mengeklik tautan di sebelah kiri sebagai gantinya dalam tampilan Penggunaan Memori, tampilan tumpukan diatur menurut jumlah objek; objek dari jenis tertentu yang paling banyak bertambah jumlahnya diperlihatkan di bagian atas (diurutkan menurut kolom Perbedaan Hitungan ).
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
Sering kali, cara termudah untuk melihat informasi performa 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 dibutuhkan untuk menyelesaikan satu fungsi.
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 men-debug, seperti pengaturan titik henti atau operasi langkah kode.
Catatan
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 di 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.
Menganalisis kode asinkron (.NET)
Alat .NET Async memungkinkan Anda menganalisis performa kode asinkron di 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.
Menganalisis performa database (.NET Core)
Untuk aplikasi .NET Core 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 Profiler Performa dengan memilih Debug>Profiler Performa (atau Alt + F2).
Alat ini memperlihatkan setiap kueri dalam tampilan daftar. Anda dapat melihat informasi seperti waktu dan durasi mulai kueri.
Memvisualisasikan penghitung .NET (.NET Core)
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. penghitung dotnet mendukung banyak penghitung seperti penggunaan CPU dan ukuran tumpukan pengumpul sampah.
Alat ini menunjukkan nilai langsung untuk setiap penghitung dalam tampilan daftar.
Memeriksa peristiwa aplikasi
Penampil peristiwa generik memungkinkan Anda untuk melihat aktivitas aplikasi Anda melalui daftar peristiwa, seperti beban modul, waktu mulai utas, dan konfigurasi sistem, untuk membantu mendiagnosis performa aplikasi Anda dengan lebih baik tepat 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, stempel waktu, dan ID proses.
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 Menambahkan tanda pengguna ke garis waktu.
Menganalisis penggunaan 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 untuk menyiapkan bingkai UI (tata letak dan render), melayani permintaan jaringan dan disk, dan dalam skenario seperti memulai aplikasi, memuat halaman, dan mengubah ukuran jendela. Untuk menggunakan alat ini, pilih Garis Waktu Aplikasi di Profiler Performa, lalu pilih Mulai. Di aplikasi Anda, lihat skenario dengan dugaan masalah konsumsi sumber daya, lalu pilih Hentikan pengumpulan untuk membuat laporan.
Laju bingkai rendah dalam grafik Throughput visual mungkin sesuai dengan masalah visual yang Anda lihat saat menjalankan aplikasi Anda. Demikian pula, angka tinggi dalam grafik pemanfaatan utas UI juga dapat sesuai dengan masalah responsivitas 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 Kisi membutuhkan waktu 57,53 mdtk.
Untuk mengetahui informasi selengkapnya, lihat Garis Waktu Aplikasi.
Memeriksa peristiwa performa dan aksesibilitas UI (UWP)
Di aplikasi UWP, Anda dapat mengaktifkan Analisis UI di jendela Alat Diagnostik. Alat ini mencari masalah performa atau aksesibilitas umum dan menampilkannya dalam tampilan Peristiwa saat Anda melakukan penelusuran kesalahan. 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, lihat skenario yang Anda minati dalam pembuatan profil, lalu pilih Hentikan koleksi untuk membuat laporan.
Saat Anda memilih periode waktu dalam grafik dan memilih tampilkan 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 VSync vertikal abu-abu muda dapat digunakan sebagai referensi untuk memahami apakah panggilan Sajikan tertentu melewatkan VSync. Harus ada satu panggilan Sajikan antara setiap dua VSync agar aplikasi terus mencapai 60 FPS.)
Anda juga dapat menggunakan grafik untuk menentukan apakah terdapat hambatan performa terikat CPU atau GPU.
Menganalisis performa (alat warisan)
Pada Visual Studio 2019, Penjelajah Performa warisan dan alat pembuatan profil terkait seperti Wizard Performa dilipat ke dalam Profiler Performa, yang dapat Anda buka menggunakan Debug>Performance Profiler. 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 yang diinstrumentasikan (untuk jumlah dan durasi panggilan yang tepat) yang ada di Wizard Performa. Alat memori tambahan juga muncul di Profiler Performa.