Ohjelmointi

Kuinka käyttää MiniProfileriä ASP.Net Core -sovelluksessa

Verkkosovellusten suorituskyky on vakava huolenaihe ympäri maailmaa. Kehittäjillä on monia työkaluja, joita he voivat käyttää verkkosovellusten profilointiin ja suorituskyvyn pullonkaulojen löytämiseen. MiniProfiler on yksi tällainen työkalu - yksinkertainen mutta tehokas työkalu verkkosovellusten profilointiin. MiniProfiler auttaa tunnistamaan hitaat käynnissä olevat kyselyt, hitaat palvelimen vasteajat ja paljon muuta.

MiniProfiler on saatavana malleille .Net, ASP.Net ja ASP.Net Core. Löydät MiniProfiler-ohjeet GitHubista. Tässä artikkelissa käsitellään MiniProfileria, miksi se on hyödyllinen ja miten voimme käyttää sitä ASP.Net Core MVC -sovellusten profilointiin ja sovellusten suorituskykyongelmien löytämiseen.

Luo ASP.Net Core MVC -projekti Visual Studio 2017: ssä

Ensinnäkin, luodaan ASP.Net Core MVC -projekti Visual Studiossa. Jos Visual Studio 2017 on käynnissä ja käynnissä järjestelmässäsi, luo ASP.Net Core MVC -projekti noudattamalla alla olevia ohjeita.

  1. Käynnistä Visual Studio 2017 IDE.
  2. Napsauta Tiedosto> Uusi> Projekti.
  3. Valitse näytetystä malliluettelosta ”ASP.Net Core Web Application (.Net Core)”.
  4. Määritä projektille nimi.
  5. Tallenna projekti napsauttamalla OK.
  6. Uusi ikkuna, “New .Net Core Web Application…”, tulee näkyviin.
  7. Valitse .Net Core ajonaikaiseksi ja ASP.Net Core 2.1 (tai uudempi) ylhäältä avattavasta luettelosta. Käytän .Net Core 2.2: ta.
  8. Valitse projektimalliksi ”Web Application (Model-View-Controller)” (kuten alla olevassa kuvassa 1 on esitetty).
  9. Varmista, että valintaruudut “Ota Docker-tuki käyttöön” ja “Määritä HTTPS: lle” on poistettu. Emme käytä näitä ominaisuuksia täällä.
  10. Varmista, että ”Ei todentamista” on valittu. Emme myöskään käytä todennusta täällä.
  11. Napsauta OK.

Näiden vaiheiden seuraaminen luo uuden ASP.Net Core MVC -projektin Visual Studioon. Käytämme tätä projektia sovelluksen profilointiin MiniProfilerilla.

Asenna ja määritä MiniProfiler ASP.Net Core -sovellukseen

Aloita työskentely MiniProfilerin kanssa asentamalla tarvittava NuGet-paketti. Asenna MiniProfiler projektiisi noudattamalla seuraavia ohjeita.

  1. Valitse projekti Solution Explorer -ikkunasta.
  2. Napsauta hiiren kakkospainikkeella ja valitse "Manage NuGet Packages ..."
  3. Hae ”MiniProfiler.AspNetCore.Mvc” -pakettia.
  4. Napsauta “Install” asentaaksesi NuGet-paketin.

Tämä asentaa MiniProfiler.AspNetCore.Mvc NuGet -paketin projektiisi. Jos haluat aloittaa MiniProfilerin käyttämisen projektissasi, sinun on määritettävä se Startup-luokassa. Seuraava koodinpätkä osoittaa, kuinka voit kutsua ISMerviceCollection-ilmentymän AddMiniProfiler-menetelmän lisätäksesi MiniProfilerin putkijonoon.

public void ConfigureServices (IServiceCollection-palvelut)

        {

services.AddMiniProfiler (vaihtoehdot =>

options.RouteBasePath = "/ profiler"

            );

// Tavallinen koodi

        }

Voit oppia lisää vaihtoehdoista, jotka voit määrittää rekisteröidessäsi MiniProfilerin putkilinjaan, täältä MiniProfiler-verkkosivustolta.

Sinun tulisi myös vedota UseMiniProfiler-menetelmään IApplicationBuilder-ilmentymässä, jotta voit aloittaa MiniProfilerin käytön ohjaimissa ja näkymissä.

public void Configure (IApplicationBuilder-sovellus, IHostingEnvironment env)

    {

app.UseMiniProfiler ();

// Tavallinen koodi

    }

Lisää seuraavaksi seuraavat kaksi riviä tagin sisään _Layout.cshtml-tiedostoon.

@ käyttämällä StackExchangea

@addTagHelper *, MiniProfiler.AspNetCore.Mvc

Sinun tulisi myös määrittää, missä verkkosivulla MiniProfiler-ikkuna tulisi näyttää, eli renderöintiasema. Voit tehdä tämän lisäämällä seuraavan lauseen tagiin.

Käytä MiniProfilerin vaiheita ASP.Net Core MVC -koodin profilointiin

MiniProfiler ilmoittaa sinulle sivun latausajat ja tietokantakyselyjen suorittamiseen liittyvät tiedot. Kun suoritat sovelluksen, lähtö näkyy alla olevan kuvan 2 mukaisesti. Huomaa MiniProfiler-ikkuna näytön oikeassa yläkulmassa.

Voit oppia koodin tietyn osan suorittamiseen kuluvan ajan hyödyntämällä vaiheita. Seuraava koodinpätkä kuvaa, miten tämä voidaan saavuttaa.

julkinen IActionResult-indeksi ()

 {

var miniProfiler = MiniProfiler.Current;

Luettelon kirjoittajat = new List ();

miniProfiler.RenderIncludes (tämä.HttpContext);

käyttämällä (miniProfiler.Step ("Hae kirjoittajia"))

       {

kirjoittajat.Lisää (uusi kirjailija () {Id = 1, Etunimi = "Joydip", Sukunimi = "Kanjilal", Osoite = "Hyderabad, Intia"});

kirjoittajat.Lisää (uusi kirjailija () {Id = 2, Etunimi = "Stephen", Sukunimi = "Smith", Osoite = "NY, USA"});

kirjoittajat.Lisää (uusi kirjailija () {Id = 3, Etunimi = "Anand", Sukunimi = "Narayanan", Osoite = "Chennai, Intia"});

kirjoittajat.Lisää (uusi kirjailija () {Id = 4, Etunimi = "Steve", Sukunimi = "Jones", Osoite = "Lontoo, Iso-Britannia"});

       }

return Näytä (tekijät);

 }

Seuraava koodinpätkä osoittaa, miltä edellä mainittu Author-luokka näyttää.

public class Kirjoittaja

    {

julkinen int Id {get; aseta; }

julkinen merkkijono Etunimi {get; aseta; }

julkinen merkkijono Sukunimi {get; aseta; }

julkinen merkkijono Osoite {get; aseta; }

    }

Kun suoritat sovelluksen, huomaat määrittelemämme vaiheen kuluttaman ajan alla olevan kuvan 3 mukaisesti. Vihreällä korostamasi merkintä näyttää "Hanki kirjoittajat" -vaiheen suorittamiseen kuluneen ajan.

Jos haluat jättää tietyn osan sovelluksesi koodista profiloimatta, voit määrittää ohitettavan koodin alla olevan koodinpätkän mukaisesti.

käyttämällä (MiniProfiler.Current.Ignore ())

{

// Kirjoita tähän koodi, jota et

// haluat MiniProfilerin profiilin

}

Käytä MiniProfileria ADO.Net-kyselyjen profilointiin

Voit käyttää MiniProfileria myös ADO.Net-kyselyjen profilointiin. Tätä varten sinun on hyödynnettävä ProfileDbConnection- ja ProfileDbCommand-palveluja alla olevan koodinpätkän mukaisesti.

käyttäen (SqlConnection connection = new SqlConnection (@ "Tietolähde = JOYDIP \ SQLEXPRESS; Initial Catalog = SyncDB; Trusted_Connection = Kyllä"))

     {

käyttäen (ProfiledDbConnection profiledDbConnection = uusi ProfiledDbConnection (yhteys, MiniProfiler.Current))

         {

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

profiloituDbConnection.Open ();

käyttämällä (SqlCommand -komento = uusi SqlCommand

("Valitse * tekijöistä", yhteys))

               {

käyttäen (ProfiledDbCommand profiledDbCommand =

uusi ProfiledDbCommand (komento, yhteys,

MiniProfiler.Current))

                       {                               

var data =

profiledDbCommand.ExecuteReader ();

// Kirjoita koodi tähän kirjoittajien luettelon täyttämiseksi

                        }

                 }

          }                      

    }

Huomaa, kuinka ProfileDbConnection ja ProfileDbCommand kääri DbConnection- ja DbCommand-objektit. Voit oppia lisää lähdekoodin profiloimisesta MiniProfilerilla MiniProfiler-verkkosivustolta.

MiniProfiler on yksinkertainen profiloija .Net-, Ruby-, Go- ja Node.js-tiedostoille. Voit käyttää MiniProfileria Dapperin, Linq2SQL: n ja Entity Frameworkin luomien kyselyjen profilointiin. Sen lisäksi, että MiniProfiler on helppokäyttöinen, se ei lisää sovelluksiin paljon yleiskustannuksia. Voit käyttää MiniProfileria tuotannon sovellusten profilointiin ilman merkittävää suorituskykyvaikutusta.