Cara menggunakan MiniProfiler di ASP.Net Core

Kinerja aplikasi web merupakan perhatian serius di seluruh dunia. Pengembang memiliki banyak alat yang dapat mereka gunakan untuk membuat profil aplikasi web dan menemukan hambatan kinerja. MiniProfiler adalah salah satu alat tersebut - alat sederhana namun kuat untuk membuat profil aplikasi web. MiniProfiler membantu Anda mendeteksi kueri yang berjalan lambat, waktu respons server lambat, dan banyak lagi. 

MiniProfiler tersedia untuk .Net, ASP.Net, dan ASP.Net Core. Anda akan menemukan dokumentasi untuk MiniProfiler di GitHub. Artikel ini menyajikan diskusi tentang MiniProfiler, mengapa ini berguna, dan bagaimana kita dapat menggunakannya untuk membuat profil aplikasi ASP.Net Core MVC dan menemukan masalah kinerja dalam aplikasi kita.

Membuat proyek ASP.Net Core MVC di Visual Studio 2017

Pertama, mari buat proyek ASP.Net Core MVC di Visual Studio. Jika Visual Studio 2017 sudah aktif dan berjalan di sistem Anda, ikuti langkah-langkah yang diberikan di bawah ini untuk membuat proyek ASP.Net Core MVC.

  1. Luncurkan Visual Studio 2017 IDE.
  2. Klik File> New> Project.
  3. Pilih "ASP.Net Core Web Application (.Net Core)" dari daftar template yang ditampilkan.
  4. Tentukan nama untuk proyek tersebut.
  5. Klik OK untuk menyimpan proyek.
  6. Sebuah jendela baru, "New .Net Core Web Application…", akan ditampilkan.
  7. Pilih .Net Core sebagai runtime dan ASP.Net Core 2.1 (atau yang lebih baru) dari daftar drop-down di bagian atas. Saya menggunakan .Net Core 2.2.
  8. Pilih "Aplikasi Web (Model-View-Controller)" sebagai template proyek (seperti yang ditunjukkan pada Gambar 1 di bawah).
  9. Pastikan kotak centang "Aktifkan Dukungan Docker" dan "Konfigurasi untuk HTTPS" tidak dicentang. Kami tidak akan menggunakan fitur ini di sini.
  10. Pastikan bahwa “No Authentication” dipilih. Kami juga tidak akan menggunakan otentikasi di sini.
  11. Klik OK. 

Mengikuti langkah-langkah ini akan membuat proyek ASP.Net Core MVC baru di Visual Studio. Kami akan menggunakan proyek ini untuk membuat profil aplikasi menggunakan MiniProfiler.

Instal dan konfigurasikan MiniProfiler di ASP.Net Core

Untuk mulai bekerja dengan MiniProfiler, Anda perlu menginstal paket NuGet yang diperlukan. Untuk menginstal MiniProfiler di proyek Anda, ikuti langkah-langkah yang diberikan di bawah ini.

  1. Pilih proyek di jendela Solution Explorer. 
  2. Klik kanan dan pilih "Kelola Paket NuGet ..."
  3. Cari paket "MiniProfiler.AspNetCore.Mvc". 
  4. Klik "Instal" untuk menginstal paket NuGet. 

Ini akan menginstal paket MiniProfiler.AspNetCore.Mvc NuGet di proyek Anda. Untuk mulai menggunakan MiniProfiler di proyek Anda, Anda perlu mengkonfigurasinya di kelas Startup. Cuplikan kode berikut menunjukkan bagaimana Anda dapat memanggil metode AddMiniProfiler pada instance IServiceCollection untuk menambahkan MiniProfiler ke pipeline.

public void ConfigureServices (layanan IServiceCollection)

        {

            services.AddMiniProfiler (opsi =>

            options.RouteBasePath = "/ profiler"

            );

            // Kode biasa

        }

Anda dapat mempelajari lebih lanjut tentang opsi yang dapat Anda tentukan saat mendaftarkan MiniProfiler dengan pipeline dari situs web MiniProfiler di sini.

Anda juga harus menjalankan metode UseMiniProfiler pada instance IApplicationBuilder untuk mulai menggunakan MiniProfiler di pengontrol dan tampilan Anda.

public void Configure (aplikasi IApplicationBuilder, IHostingEnvironment env)

    {

       app.UseMiniProfiler ();

       // Kode biasa

    }

Selanjutnya tambahkan dua baris berikut di dalam tag di file _Layout.cshtml.

@ menggunakan StackExchange.Profiling

@addTagHelper *, MiniProfiler.AspNetCore.Mvc

Anda juga harus menentukan di mana di halaman web jendela MiniProfiler harus ditampilkan, yaitu posisi render. Untuk melakukan ini, Anda dapat menyertakan pernyataan berikut di dalam tag.


  

Gunakan langkah-langkah di MiniProfiler untuk membuat profil kode ASP.Net Core MVC

MiniProfiler akan memberi tahu Anda waktu muat halaman dan informasi yang terkait dengan kinerja kueri database. Saat Anda menjalankan aplikasi, akan muncul output seperti pada Gambar 2 berikut. Perhatikan jendela MiniProfiler di pojok kanan atas layar.

Untuk mempelajari waktu yang dibutuhkan untuk bagian tertentu dari kode Anda untuk dieksekusi, Anda dapat memanfaatkan langkah-langkah. Potongan kode berikut menggambarkan bagaimana hal ini dapat dicapai.

Indeks IActionResult publik ()

 {

       var miniProfiler = MiniProfiler.Current;

       Penulis daftar = Daftar baru ();

       miniProfiler.RenderIncludes (this.HttpContext);

       menggunakan (miniProfiler.Step ("Get Authors"))

       {

           author.Add (Penulis baru () {Id = 1, FirstName = "Joydip", LastName = "Kanjilal", Address = "Hyderabad, India"});

           author.Add (Penulis baru () {Id = 2, FirstName = "Stephen", LastName = "Smith", Address = "NY, USA"});

           author.Add (Penulis baru () {Id = 3, FirstName = "Anand", LastName = "Narayanan", Address = "Chennai, India"});

           author.Add (Penulis baru () {Id = 4, FirstName = "Steve", LastName = "Jones", Address = "London, UK"});

       }

           kembali Lihat (penulis);

 }

Potongan kode berikut menunjukkan seperti apa kelas Penulis yang disebutkan di atas.

kelas publik Penulis

    {

        public int Id {get; set; }

        string publik FirstName {get; set; }

        string publik LastName {get; set; }

        public string Address {get; set; }

    }

Saat Anda menjalankan aplikasi, Anda akan mengamati waktu yang dibutuhkan oleh langkah yang kami tentukan seperti yang ditunjukkan pada Gambar 3 di bawah. Entri yang saya soroti dengan warna hijau menunjukkan waktu yang dibutuhkan untuk menjalankan langkah "Dapatkan Penulis".

Jika Anda ingin mengabaikan bagian tertentu dari kode aplikasi Anda dari pembuatan profil, Anda dapat menentukan kode yang akan diabaikan seperti yang ditunjukkan pada cuplikan kode di bawah ini.

menggunakan (MiniProfiler.Current.Ignore ())

{

  // Tulis kode di sini yang tidak Anda lakukan

  // ingin MiniProfiler menjadi profil

}

Gunakan MiniProfiler untuk membuat profil kueri ADO.Net

Anda juga dapat menggunakan MiniProfiler untuk membuat profil kueri ADO.Net. Untuk melakukan itu, Anda perlu memanfaatkan ProfileDbConnection dan ProfileDbCommand seperti yang ditunjukkan pada cuplikan kode di bawah ini.

menggunakan (SqlConnection connection = new SqlConnection (@ "Data Source = JOYDIP \ SQLEXPRESS; Initial Catalog = SyncDB; Trusted_Connection = Yes"))

     {

       menggunakan (ProfiledDbConnection profiledDbConnection = new ProfiledDbConnection (koneksi, MiniProfiler.Current))

         {

           if (profiledDbConnection.State! = System.Data.ConnectionState.Open)

               profiledDbConnection.Open ();

             menggunakan (SqlCommand command = new SqlCommand

              ("Pilih * Dari Penulis", sambungan))

               {

                 menggunakan (ProfiledDbCommand profiledDbCommand =

                   ProfiledDbCommand baru (perintah, koneksi,

                     MiniProfiler. Saat Ini))

                       {                               

                         var data =

                          profiledDbCommand.ExecuteReader ();

              // Tulis kode di sini untuk mengisi daftar Penulis

                        }

                 }

          }                      

    }

Perhatikan bagaimana ProfileDbConnection dan ProfileDbCommand membungkus objek DbConnection dan DbCommand. Anda dapat mempelajari selengkapnya tentang cara membuat profil kode sumber menggunakan MiniProfiler dari situs web MiniProfiler.

MiniProfiler adalah profiler sederhana untuk .Net, Ruby, Go, dan Node.js. Anda dapat menggunakan MiniProfiler untuk membuat profil kueri yang dihasilkan oleh Dapper, Linq2SQL, dan Entity Framework. Selain mudah digunakan, MiniProfiler tidak menambahkan banyak overhead ke aplikasi Anda. Anda dapat menggunakan MiniProfiler untuk membuat profil aplikasi dalam produksi tanpa pengaruh kinerja yang signifikan.