Programiranje

Kako uporabljati MiniProfiler v ASP.Net Core

Delovanje spletnih aplikacij je po vsem svetu resna skrb. Razvijalci imajo veliko orodij, s katerimi lahko profilirajo spletne aplikacije in najdejo ozka grla pri zmogljivosti. MiniProfiler je eno takšnih orodij - preprosto, a močno orodje za profiliranje spletnih aplikacij. MiniProfiler vam pomaga zaznati počasne teče poizvedbe, počasen odzivni čas strežnika in še več.

MiniProfiler je na voljo za .Net, ASP.Net in ASP.Net Core. Dokumentacijo za MiniProfiler najdete na GitHub. Ta članek predstavlja razpravo o MiniProfilerju, zakaj je uporaben in kako ga lahko uporabimo za profiliranje programov ASP.Net Core MVC in odkrivanje težav z zmogljivostjo v naših aplikacijah.

Ustvarite projekt ASP.Net Core MVC v Visual Studio 2017

Najprej ustvarimo projekt ASP.Net Core MVC v Visual Studio. Če Visual Studio 2017 deluje in deluje v vašem sistemu, sledite spodnjim korakom, da ustvarite projekt ASP.Net Core MVC.

  1. Zaženite Visual Studio 2017 IDE.
  2. Kliknite Datoteka> Novo> Projekt.
  3. Na seznamu prikazanih predlog izberite »Spletna aplikacija ASP.Net Core (.Net Core)«.
  4. Navedite ime projekta.
  5. Kliknite V redu, da shranite projekt.
  6. Odprlo se bo novo okno »New .Net Core Web Application…«.
  7. Na spustnem seznamu na vrhu izberite .Net Core kot izvajalno okolje in ASP.Net Core 2.1 (ali novejšo). Uporabljam .Net Core 2.2.
  8. Za predlogo projekta izberite »Spletna aplikacija (Model-View-Controller)« (kot je prikazano na sliki 1 spodaj).
  9. Prepričajte se, da potrditvena polja »Omogoči podporo za Docker« in »Konfiguriranje za HTTPS« nista potrjeni. Tu ne bomo uporabljali teh funkcij.
  10. Prepričajte se, da je izbrana možnost »No Authentication«. Tudi tu ne bomo uporabljali preverjanja pristnosti.
  11. Kliknite V redu.

Po teh korakih boste v Visual Studio ustvarili nov projekt ASP.Net Core MVC. Ta projekt bomo uporabili za profiliranje aplikacije s pomočjo MiniProfiler.

Namestite in konfigurirajte MiniProfiler v ASP.Net Core

Za začetek dela z MiniProfiler morate namestiti potreben paket NuGet. Če želite v svoj projekt namestiti MiniProfiler, sledite spodnjim korakom.

  1. V oknu raziskovalca rešitev izberite projekt.
  2. Z desno tipko miške kliknite in izberite »Upravljanje paketov NuGet ...«
  3. Poiščite paket »MiniProfiler.AspNetCore.Mvc«.
  4. Kliknite »Namesti«, da namestite paket NuGet.

To bo v vaš projekt namestilo paket MiniProfiler.AspNetCore.Mvc NuGet. Če želite začeti uporabljati MiniProfiler v svojem projektu, ga boste morali konfigurirati v razredu Startup. Naslednji delček kode prikazuje, kako lahko v primerku IServiceCollection pokličete metodo AddMiniProfiler, da dodate MiniProfiler v cevovod.

public void ConfigureServices (storitve IServiceCollection)

        {

services.AddMiniProfiler (možnosti =>

options.RouteBasePath = "/ profiler"

            );

// Običajna koda

        }

Več o možnostih, ki jih lahko navedete pri registraciji MiniProfilerja v cevovod, lahko izveste na spletnem mestu MiniProfiler tukaj.

Za začetek uporabe MiniProfilerja v krmilnikih in pogledih morate uporabiti tudi metodo UseMiniProfiler v primerku IApplicationBuilder.

javna void Configure (aplikacija IApplicationBuilder, IHostingEnvironment env)

    {

app.UseMiniProfiler ();

// Običajna koda

    }

Nato dodajte naslednji dve vrstici znotraj oznake v datoteki _Layout.cshtml.

@use StackExchange.Profiling

@addTagHelper *, MiniProfiler.AspNetCore.Mvc

Določiti morate tudi, kje na spletni strani naj bo prikazano okno MiniProfiler, tj. Položaj upodabljanja. Če želite to narediti, lahko v oznako vključite naslednji stavek.

S koraki v MiniProfiler profilirajte kodo ASP.Net Core MVC

MiniProfiler vas bo obvestil o časih nalaganja strani in informacijah o uspešnosti poizvedb v zbirki podatkov. Ko zaženete aplikacijo, se prikaže izhod, kot je prikazano na sliki 2 spodaj. Upoštevajte okno MiniProfiler v zgornjem desnem kotu zaslona.

Če želite izvedeti čas, potreben za izvedbo določenega dela kode, lahko izkoristite korake. Naslednji delček kode prikazuje, kako je to mogoče doseči.

javni indeks IActionResult ()

 {

var miniProfiler = MiniProfiler.Current;

Avtorji seznama = nov seznam ();

miniProfiler.RenderIncludes (this.HttpContext);

z uporabo (miniProfiler.Step ("Pridobite avtorje"))

       {

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

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

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

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

       }

povratni pogled (avtorji);

 }

Naslednji delček kode prikazuje, kako izgleda zgoraj omenjeni razred Author.

javni razred Avtor

    {

public int Id {get; set; }

javni niz FirstName {get; set; }

javni niz LastName {get; set; }

javni niz Naslov {get; set; }

    }

Ko zaženete aplikacijo, boste upoštevali čas, ki ga je opravil korak, ki smo ga opredelili, kot je prikazano na sliki 3 spodaj. Vnos, ki sem ga označil z zeleno, prikazuje čas, potreben za izvedbo koraka »Pridobi avtorje«.

Če želite prezreti določen del kode aplikacije iz profiliranja, lahko določite kodo, ki bo prezrta, kot je prikazano v spodnjem delčku kode.

z uporabo (MiniProfiler.Current.Ignore ())

{

// Tukaj napišite kodo, ki je ne

// želimo, da MiniProfiler profilira

}

Uporabite MiniProfiler za profiliranje poizvedb ADO.Net

MiniProfiler lahko uporabite tudi za profiliranje poizvedb ADO.Net. Če želite to narediti, morate izkoristiti ProfileDbConnection in ProfileDbCommand, kot je prikazano v spodnjem delčku kode.

z uporabo (povezava SqlConnection = nova SqlConnection (@ "Vir podatkov = JOYDIP \ SQLEXPRESS; Začetni katalog = SyncDB; Trusted_Connection = Da"))

     {

z uporabo (ProfiledDbConnection profiledDbConnection = nov ProfiledDbConnection (povezava, MiniProfiler.Current))

         {

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

profiledDbConnection.Open ();

z uporabo (ukaz SqlCommand = nov SqlCommand

("Izberi * od avtorjev", povezava))

               {

z uporabo (ProfiledDbCommand profiledDbCommand =

nov ProfiledDbCommand (ukaz, povezava,

MiniProfiler.Trenutno))

                       {                               

podatki var =

profiledDbCommand.ExecuteReader ();

// Tu vpišite kodo, da zapolnite seznam avtorjev

                        }

                 }

          }                      

    }

Upoštevajte, kako ProfileDbConnection in ProfileDbCommand zavijeta objekte DbConnection in DbCommand. Na spletnem mestu MiniProfiler lahko izveste več o profiliranju izvorne kode z uporabo MiniProfiler.

MiniProfiler je preprost profiler za .Net, Ruby, Go in Node.js. MiniProfiler lahko uporabite za profiliranje poizvedb, ki jih ustvarijo Dapper, Linq2SQL in Entity Framework. Poleg tega, da je MiniProfiler enostaven za uporabo, vašim aplikacijam ne dodaja preveč stroškov. MiniProfiler lahko uporabite za profiliranje aplikacij v proizvodnji brez večjega vpliva na zmogljivost.

$config[zx-auto] not found$config[zx-overlay] not found