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.
Anda dapat menggunakan alat pembuatan profil untuk mengumpulkan dan melihat data BenchmarkDotNet di Visual Studio. BenchmarkDotNet adalah pustaka .NET sumber terbuka yang dirancang untuk tolok ukur performa. Ini mengotomatiskan proses pengukuran dan membandingkan waktu eksekusi, penggunaan memori, dan metrik performa lainnya dari kode .NET Anda dengan cara yang dapat diandalkan dan dapat diulang.
Anda menggunakan BenchmarkDotNet dengan menginstal paket NuGet yang diperlukan dalam proyek Anda lalu menambahkan atribut ke kode Anda yang cocok dengan jenis informasi performa yang Anda minati.
Prasyarat
Visual Studio 2022 versi 17.9 atau yang lebih baru
Proyek tolok ukur Anda harus menyertakan dua paket NuGet berikut:
Jika Anda menggunakan templat proyek Tolok Ukur, paket NuGet ini ada saat Anda membuat proyek.
Menyiapkan proyek Anda
Atribut tolok ukur harus ditambahkan ke aplikasi konsol .NET. Atribut dapat ditambahkan ke fungsi pembungkus yang mereferensikan jenis proyek lain.
Untuk menyiapkan proyek Anda untuk dukungan BenchmarkDotNet, gunakan salah satu metode berikut:
Buka proyek konsol yang sudah ada atau buat proyek konsol baru. Dalam skenario ini, Anda menambahkan dukungan BenchmarkDotNet secara manual.
Gunakan templat Proyek Tolok Ukur . Beberapa langkah yang dijelaskan dalam artikel ini hanya diperlukan saat Anda menambahkan dukungan BenchmarkDotNet secara manual.
Templat Proyek Tolok Ukur menghasilkan proyek BenchmarkDotNet yang terintegrasi penuh dengan dukungan bawaan untuk pembuatan profil Penggunaan CPU dan wawasan Copilot. Untuk menggunakan templat, pilih Pembuatan profil dari daftar jenis proyek saat Anda membuat proyek baru, lalu pilih Proyek Tolok Ukur. Untuk informasi tentang atribut, lihat Atribut kode Anda.
Buat proyek konsol atau gunakan proyek konsol yang ada.
Atribut tolok ukur harus ditambahkan ke aplikasi konsol .NET. Atribut dapat ditambahkan ke fungsi pembungkus yang mereferensikan jenis proyek lain.
Atribut kode Anda
Saat Anda menambahkan diagnoser BenchmarkDotNet ke kelas tolok ukur sebagai atribut, Anda mengonfigurasi aplikasi untuk membuat file .diagsession setelah tolok ukur berjalan. Anda kemudian dapat membuka file .diagsession di Visual Studio dan melihat data pembuatan profil untuk tolok ukur.
Diagnoser berikut didukung:
- Diagnoser Penggunaan CPU
- DatabaseDiagnoser
- DotNetCountersDiagnoser
- EventsDiagnoser
- FileIODiagnoser
Setiap diagnoser menghasilkan data performa yang terkait dengan diagnoser tersebut. Misalnya, CPUUsageDiagnoser menghasilkan file .diagsession dengan data CPU di dalamnya, dan DatabaseDiagnoser menghasilkan file .diagsession dengan data pada operasi database. Batasan sesuai dengan alat pembuatan profil terkait. Misalnya, alat Database profiler berfungsi pada ADO.NET atau Entity Framework Core.
Untuk mengaitkan kode Anda dengan pengdiagnosis dan tolok ukur:
Tambahkan nama diagnoser sebagai atribut ke kelas yang berisi tolok ukur yang ingin Anda hasilkan datanya.
BenchmarkTambahkan atribut ke metode yang ingin Anda uji performanya.Misalnya, Anda dapat menggunakan kode berikut untuk CPUUsageDiagnoser.
Jika Anda menggunakan templat Proyek Tolok Ukur , kode sampel sudah disediakan dalam templat. Jika Anda menambahkan dukungan BenchmarkDotNet secara manual, Anda dapat menggunakan contoh kode berikut.
using System; using System.Security.Cryptography; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; using Microsoft.VSDiagnostics; namespace MyBenchmarks { [CPUUsageDiagnoser] public class Md5VsSha256 { private const int N = 10000; private readonly byte[] data; private readonly SHA256 sha256 = SHA256.Create(); private readonly MD5 md5 = MD5.Create(); public Md5VsSha256() { data = new byte[N]; new Random(42).NextBytes(data); } [Benchmark] public byte[] Sha256() => sha256.ComputeHash(data); [Benchmark] public byte[] Md5() => md5.ComputeHash(data); } public class Program { public static void Main(string[] args) { var summary = BenchmarkRunner.Run(typeof(Program).Assembly); } } }
Mengumpulkan dan melihat data Benchmark.NET
Atur build Anda ke tipe Rilis alih-alih build Debug.
Jalankan aplikasi untuk menghasilkan file .diagsession .
Periksa output konsol untuk mendapatkan lokasi file. Contohnya:
// * Diagnostic Output - VSDiagnosticsDiagnoser * Collection result moved to 'BenchmarkDotNet_Md5VsSha256_20231218_123326.diagsession'. Session : {7f38bcc2-c692-4266-aa24-b12bc5325ea4} Stopped Exported diagsession file: *.diagsessionDi Visual Studio, pilih File Buka > File > dan navigasikan ke lokasi file .diagsession, lalu pilih dan buka file.
Pilih tab Tolok Ukur untuk melihat data tolok ukur BenchmarkDotNet.
Untuk informasi selengkapnya tentang hasilnya di tab Tolok Ukur , lihat Dokumentasi BenchmarkDotNet .
Klik kanan baris dalam hasil dan pilih Pilih rentang waktu untuk menyinkronkan grafik garis waktu dengan tolok ukur.
Pilih salah satu tab yang tersedia seperti Penggunaan CPU atau Alokasi.
Bergantung pada diagnoser yang Anda gunakan untuk mengumpulkan data, Anda dapat memperoleh wawasan yang terkait dengan alokasi memori, penggunaan CPU, penghitung, dan data performa lainnya. Untuk menganalisis alokasi memori, gunakan MemoryDiagnoser bawaan dengan menambahkan atribut [MemoryDiagnoser]. Untuk informasi selengkapnya, lihat Diagnoser.
Nota
Profiler hanya mendukung [MemoryDiagnoser] dan diagnoser yang tercantum sebelumnya dalam artikel ini.
Untuk contoh penggunaan profiler untuk menganalisis alokasi memori, lihat posting blog Tolok Ukur dengan Visual Studio Profiler.
Untuk menganalisis data yang terkait dengan tab lain seperti Penggunaan CPU, lihat artikel terkait dalam dokumentasi pembuatan profil.
Optimalkan dengan Copilot
Anda dapat memicu pengoptimalan alokasi CPU dan memori untuk tolok ukur BenchmarkDotNet Anda langsung dari editor menggunakan CodeLens. Ini membuat penyetelan performa lebih mudah diakses dan mulus, membantu Anda menemukan dan memperbaiki masalah alokasi CPU dan memori tepat di mana Anda membuat kode.
Pilih indikator CodeLens di atas tolok ukur Anda, lalu pilih opsi Optimalkan Alokasi dengan Copilot.