Programmering

Hvordan bruke MiniProfiler i ASP.Net Core

Ytelse av webapplikasjoner er en alvorlig bekymring over hele verden. Utviklere har mange verktøy de kan bruke til å profilere webapplikasjoner og finne ytelsesflaskehalsene. MiniProfiler er et slikt verktøy - et enkelt, men kraftig verktøy for profilering av webapplikasjoner. MiniProfiler hjelper deg med å oppdage treggående spørsmål, langsomme responstider på serveren og mer.

MiniProfiler er tilgjengelig for .Net, ASP.Net og ASP.Net Core. Du finner dokumentasjonen for MiniProfiler på GitHub. Denne artikkelen presenterer en diskusjon av MiniProfiler, hvorfor den er nyttig, og hvordan vi kan bruke den til å profilere ASP.Net Core MVC-applikasjoner og oppdage ytelsesproblemer i applikasjonene våre.

Opprett et ASP.Net Core MVC-prosjekt i Visual Studio 2017

For det første, la oss lage et ASP.Net Core MVC-prosjekt i Visual Studio. Hvis Visual Studio 2017 er oppe og går i systemet ditt, følger du trinnene nedenfor for å opprette et ASP.Net Core MVC-prosjekt.

  1. Start Visual Studio 2017 IDE.
  2. Klikk på Fil> Ny> Prosjekt.
  3. Velg “ASP.Net Core Web Application (.Net Core)” fra listen over maler som vises.
  4. Spesifiser et navn på prosjektet.
  5. Klikk OK for å lagre prosjektet.
  6. Et nytt vindu, "New .Net Core Web Application ...", vises.
  7. Velg .Net Core som kjøretid og ASP.Net Core 2.1 (eller nyere) fra rullegardinlisten øverst. Jeg bruker .Net Core 2.2.
  8. Velg "Web Application (Model-View-Controller)" som prosjektmal (som vist i figur 1 nedenfor).
  9. Forsikre deg om at avmerkingsboksene "Aktiver Docker-støtte" og "Konfigurer for HTTPS" ikke er merket av. Vi bruker ikke disse funksjonene her.
  10. Forsikre deg om at “Ingen godkjenning” er valgt. Vi bruker ikke autentisering her heller.
  11. Klikk OK.

Ved å følge disse trinnene vil det opprette et nytt ASP.Net Core MVC-prosjekt i Visual Studio. Vi bruker dette prosjektet til å profilere applikasjonen ved hjelp av MiniProfiler.

Installer og konfigurer MiniProfiler i ASP.Net Core

For å komme i gang med MiniProfiler, må du installere den nødvendige NuGet-pakken. Følg trinnene nedenfor for å installere MiniProfiler i prosjektet ditt.

  1. Velg prosjektet i Solution Explorer-vinduet.
  2. Høyreklikk og velg "Manage NuGet Packages ..."
  3. Søk etter pakken "MiniProfiler.AspNetCore.Mvc".
  4. Klikk "Installer" for å installere NuGet-pakken.

Dette vil installere MiniProfiler.AspNetCore.Mvc NuGet-pakken i prosjektet ditt. For å begynne å bruke MiniProfiler i prosjektet ditt, må du konfigurere det i oppstartsklassen. Følgende kodebit viser hvordan du kan ringe AddMiniProfiler-metoden på IServiceCollection-forekomsten for å legge til MiniProfiler i rørledningen.

offentlig ugyldighet ConfigureServices (IServiceCollection-tjenester)

        {

services.AddMiniProfiler (alternativer =>

options.RouteBasePath = "/ profiler"

            );

// Vanlig kode

        }

Du kan lære mer om alternativene du kan spesifisere når du registrerer MiniProfiler med rørledningen fra MiniProfiler-nettstedet her.

Du bør også påberope UseMiniProfiler-metoden i IApplicationBuilder-forekomsten for å begynne å bruke MiniProfiler i kontrollerne og visningene dine.

public void Configure (IApplicationBuilder app, IHostingEnvironment env)

    {

app.UseMiniProfiler ();

// Vanlig kode

    }

Deretter legger du til de følgende to linjene inne i koden i filen _Layout.cshtml.

@bruk StackExchange.Profiling

@addTagHelper *, MiniProfiler.AspNetCore.Mvc

Du bør også spesifisere hvor på websiden MiniProfiler-vinduet skal vises, dvs. gjengivelsesposisjonen. For å gjøre dette kan du inkludere følgende uttalelse inne i koden.

Bruk trinnene i MiniProfiler for å profilere ASP.Net Core MVC-kode

MiniProfiler vil fortelle deg om sidetiden og informasjon relatert til ytelsen til databasespørsmålene. Når du kjører applikasjonen, vises utdataene som i figur 2 nedenfor. Legg merke til MiniProfiler-vinduet øverst til høyre på skjermen.

For å lære tiden det tar for en bestemt del av koden din å kjøre, kan du dra nytte av trinnene. Følgende kodebit illustrerer hvordan dette kan oppnås.

offentlig IActionResult-indeks ()

 {

var miniProfiler = MiniProfiler.Current;

Listeforfattere = ny liste ();

miniProfiler.RenderIncludes (this.HttpContext);

ved hjelp av (miniProfiler.Step ("Få forfattere"))

       {

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

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

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

author.Add (ny forfatter () {Id = 4, FirstName = "Steve", LastName = "Jones", Adresse = "London, UK"});

       }

return Vis (forfattere);

 }

Følgende kodebit viser hvordan ovennevnte forfatterklasse ser ut.

offentlig klasse Forfatter

    {

offentlig int Id {get; sett; }

offentlig streng Fornavn {get; sett; }

offentlig streng Etternavn {get; sett; }

public string Address {get; sett; }

    }

Når du kjører applikasjonen, vil du observere tiden det tar av trinnet vi definerte som vist i figur 3 nedenfor. Oppføringen jeg har uthevet i grønt viser tiden det tar å utføre trinnet "Få forfattere".

Hvis du vil ignorere en bestemt del av programmets kode fra profilering, kan du spesifisere koden som skal ignoreres, som vist i kodebiten nedenfor.

bruker (MiniProfiler.Current.Ignore ())

{

// Skriv kode her som du ikke gjør

// vil at MiniProfiler skal profilere

}

Bruk MiniProfiler til å profilere ADO.Net-spørsmål

Du kan også bruke MiniProfiler til å profilere ADO.Net-spørsmål. For å gjøre det må du dra nytte av ProfileDbConnection og ProfileDbCommand som vist i kodebiten nedenfor.

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

     {

bruker (ProfiledDbConnection profiledDbConnection = ny ProfiledDbConnection (tilkobling, MiniProfiler.Current))

         {

hvis (profilertDbConnection.State! = System.Data.ConnectionState.Open)

profiledDbConnection.Open ();

ved hjelp av (SqlCommand-kommando = ny SqlCommand

("Velg * Fra forfattere", tilkobling))

               {

bruker (ProfiledDbCommand profilertDbCommand =

ny ProfiledDbCommand (kommando, tilkobling,

MiniProfiler.Current))

                       {                               

var data =

profiledDbCommand.ExecuteReader ();

// Skriv kode her for å fylle listen over forfattere

                        }

                 }

          }                      

    }

Legg merke til hvordan ProfileDbConnection og ProfileDbCommand bryter inn objektene DbConnection og DbCommand. Du kan lære mer om hvordan du kan profilere kildekoden ved hjelp av MiniProfiler fra MiniProfiler-nettstedet.

MiniProfiler er en enkel profil for .Net, Ruby, Go og Node.js. Du kan bruke MiniProfiler til å profilere spørsmål som genereres av Dapper, Linq2SQL og Entity Framework. I tillegg til å være enkel å bruke, legger MiniProfiler ikke mye overhead til applikasjonene dine. Du kan bruke MiniProfiler til å profilere applikasjoner i produksjonen uten betydelig ytelsespåvirkning.

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