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 Studi kasus: 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 panggilan dan waktu yang tepat yang dihabiskan dalam fungsi berdasarkan waktu jam dinding. • Anda ingin melihat waktu yang diblokir, seperti waktu yang dihabiskan untuk menunggu kunci. • Catatan: 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 | Laporan langsung untuk penghitung .NET. | • Mulai penyelidikan untuk masalah performa umum. • Anda menginginkan jejak 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 mana yang didukung di Linux?
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.
- Studi kasus: Panduan pemula untuk mengoptimalkan kode
- Mengisolasi masalah performa
- Meningkatkan performa Visual Studio dengan Alat Instrumentasi baru
- Studi Kasus: Performa ganda dalam waktu kurang dari 30 menit