Alat performa mana yang harus saya gunakan? (C#, Visual Basic, C++, F#)

Visual Studio menyediakan berbagai alat pembuatan profil untuk membantu Anda mendiagnosis berbagai jenis masalah performa aplikasi tergantung pada jenis aplikasi Anda. Dalam artikel ini, kami memberikan informasi untuk membantu Anda menemukan alat yang tepat untuk skenario dan jenis aplikasi Anda.

Untuk pendekatan umum dalam mengoptimalkan kode menggunakan alat pembuatan profil, lihat Panduan pemula untuk mengoptimalkan kode.

Alat mana yang harus saya gunakan?

Tabel berikut mencantumkan berbagai alat yang ditawarkan Visual Studio dan menyediakan skenario umum untuk memilih alat.

Alat Performa Deskripsi Kapan menggunakan alat ini?
Pemakaian CPU Menunjukkan di mana CPU menghabiskan waktu. • Mulai penyelidikan untuk masalah performa umum.
• Selidiki penggunaan CPU server tinggi.
• Selidiki skenario DevOps, seperti ketika pesanan tidak masuk ke situs web ritel.
• Mengoptimalkan penggunaan CPU.
• Selidiki latensi dalam panggilan API.
Grafik Api Lihat dalam alat Penggunaan CPU yang menyediakan visualisasi alternatif pohon panggilan. Menyelidiki latensi dalam panggilan API
Jalur panas Lihat dalam alat Penggunaan CPU yang menunjukkan di mana sebagian besar waktu CPU dihabiskan dalam aplikasi Anda. Menyelidiki latensi dalam panggilan API
Penggunaan Memori Menampilkan memori aplikasi Anda untuk menemukan masalah seperti kebocoran memori. • Mengoptimalkan penggunaan
memori• Selidiki pembekuan
UI• Selidiki dugaan kebocoran memori (kode asli)
Alokasi Objek .NET Memperlihatkan tempat Objek .NET dialokasikan dan informasi tentang pengumpulan sampah. • Mengoptimalkan penggunaan
memori .NET• Menganalisis pengumpulan sampah
Instrumentasi Menunjukkan jumlah panggilan dan waktu panggilan yang tepat. Anda memerlukan alat seperti Penggunaan CPU, tetapi Anda menginginkan jumlah dan hasil panggilan yang tepat berdasarkan waktu jam dinding. Alat ini membutuhkan overhead ekstra.
File I/O Memperlihatkan operasi I/O File Anda dan berapa lama waktu yang dibutuhkan dan berapa banyak data yang diproses. Menyelidiki pembekuan UI
PerfTips Menampilkan pengukuran cepat informasi performa saat berinteraksi dengan kode Anda. Saat penelusuran kesalahan, Anda ingin melihat waktu yang berlalu antara operasi langkah sebelumnya (atau titik henti) ke langkah atau titik henti saat ini.
Penampil Peristiwa Memperlihatkan permintaan HTTP, pesan log, dan pengecualian. • Selidiki latensi dalam panggilan
API• Selidiki aplikasi lambat yang berjalan di server web jarak jauh
.NET Async Menampilkan penggunaan asinkron/tunggu di aplikasi .NET. Selidiki dugaan masalah performa dengan kode asinkron.
.NET Counters Visualisasi untuk penghitung .NET. Anda menginginkan visualisasi untuk metrik berbasis penghitung .NET seperti pengecualian per detik, pengumpulan sampah, dan pemanfaatan CPU.
Database Memperlihatkan performa kueri database Anda. Selidiki performa untuk kueri database yang menggunakan ADO.NET atau Entity Framework Core.
Penggunaan GPU Menampilkan penggunaan perangkat keras tingkat tinggi dari aplikasi Direct3D Anda. Periksa apakah performa aplikasi Anda terikat CPU atau terikat GPU.
Garis Waktu Aplikasi Menampilkan performa UI untuk aplikasi XAML. Selidiki performa UI di aplikasi XAML, seperti waktu yang dihabiskan untuk merender bingkai.
IntelliTrace Alat debugger yang memungkinkan Anda merekam peristiwa dan memeriksa status aplikasi Anda di berbagai titik eksekusi. Anda ingin alat memeriksa status aplikasi di berbagai titik, bukan hanya status aplikasi saat ini.

Alat mana yang didukung untuk proyek saya?

Tabel berikut mencantumkan berbagai alat yang ditawarkan Visual Studio dan berbagai jenis proyek yang dapat Anda gunakan dengan:

Alat Performa .NET C/C++ UWP ASP.NET/ASP.NET Core
Pemakaian CPU yes yes yes yes
Penggunaan Memori yes yes yes yes
Alokasi Objek .NET yes no yes yes
Instrumentasi yes yes yes yes
File I/O yes yes yes yes
PerfTips yes yes yes yes
Penampil Peristiwa yes yes yes yes
.NET Async yes no yes yes
.NET Counters ya (hanya.NET Core/5+) no no ya (hanya ASP.NET Core)
Database ya (hanya.NET Core/5+) no no ya (hanya ASP.NET Core)
Penggunaan GPU yes yes yes no
Garis Waktu Aplikasi ya (XAML) no yes no
Penjelajah Performa no no no no
IntelliTrace .NET dengan Visual Studio Enterprise saja no .NET dengan Visual Studio Enterprise saja .NET dengan Visual Studio Enterprise saja

Alat berikut didukung dengan Linux sebagai platform target serta Windows:

  • Penggunaan CPU
  • Pelacakan Alokasi Objek .NET
  • .NET Async
  • .NET Counters
  • Penampil Peristiwa
  • Database

Pelajari cara menggunakan profiler

Artikel dan posting blog berikut ini menyediakan informasi selengkapnya untuk membantu Anda belajar menggunakan alat performa Visual Studio secara efektif.