Programavimas

Kaip naudoti „MiniProfiler“ ASP.Net Core

Interneto programų našumas kelia rimtą susirūpinimą visame pasaulyje. Kūrėjai turi daugybę įrankių, kuriuos gali naudoti norėdami apžvelgti žiniatinklio programas ir surasti našumo trūkumus. „MiniProfiler“ yra vienas iš tokių įrankių - paprastas, bet galingas įrankis interneto programų profiliavimui. „MiniProfiler“ padeda aptikti lėtas vykdomas užklausas, lėtą serverio atsakymo laiką ir dar daugiau.

„MiniProfiler“ yra prieinama .Net, ASP.Net ir ASP.Net Core. „MiniProfiler“ dokumentaciją rasite „GitHub“. Šiame straipsnyje pateikiama „MiniProfiler“ diskusija, kodėl ji naudinga ir kaip mes galime ją naudoti norėdami apžvelgti ASP.Net Core MVC programas ir atrasti našumo problemas savo programose.

Sukurkite ASP.Net Core MVC projektą „Visual Studio 2017“

Pirmiausia sukurkime ASP.Net Core MVC projektą „Visual Studio“. Jei jūsų sistemoje veikia ir veikia „Visual Studio 2017“, atlikite toliau nurodytus veiksmus, kad sukurtumėte ASP.Net Core MVC projektą.

  1. Paleiskite „Visual Studio 2017 IDE“.
  2. Spustelėkite Failas> Naujas> Projektas.
  3. Rodomų šablonų sąraše pasirinkite „ASP.Net Core Web Application (.Net Core)“.
  4. Nurodykite projekto pavadinimą.
  5. Spustelėkite Gerai, kad išsaugotumėte projektą.
  6. Bus parodytas naujas langas „New .Net Core Web Application…“.
  7. Viršuje esančiame išskleidžiamajame sąraše pasirinkite .Net Core kaip vykdymo laiką, o ASP.Net Core 2.1 (arba naujesnę). Aš naudoju .Net Core 2.2.
  8. Kaip projekto šabloną pasirinkite „Web Application (Model-View-Controller)“ (kaip parodyta toliau 1 paveiksle).
  9. Įsitikinkite, kad nepažymėti žymės langeliai „Įgalinti„ Docker “palaikymą“ ir „Konfigūruoti HTTPS“. Čia nenaudosime šių funkcijų.
  10. Įsitikinkite, kad pasirinkta „Nėra autentifikavimo“. Čia taip pat nenaudosime autentifikavimo.
  11. Spustelėkite Gerai.

Atlikę šiuos veiksmus, „Visual Studio“ sukursite naują ASP.Net Core MVC projektą. Šį projektą naudosime programos profiliui kurti naudodami „MiniProfiler“.

Įdiekite ir sukonfigūruokite „MiniProfiler“ ASP.Net Core

Norėdami pradėti dirbti su „MiniProfiler“, turite įdiegti reikiamą „NuGet“ paketą. Norėdami įdiegti „MiniProfiler“ į savo projektą, atlikite toliau nurodytus veiksmus.

  1. Lange Solution Explorer pasirinkite projektą.
  2. Dešiniuoju pelės mygtuku spustelėkite ir pasirinkite „Tvarkyti„ NuGet “paketus ...“
  3. Ieškokite „MiniProfiler.AspNetCore.Mvc“ paketo.
  4. Norėdami įdiegti „NuGet“ paketą, spustelėkite „Įdiegti“.

Tai įdiegs jūsų projekte „MiniProfiler.AspNetCore.Mvc NuGet“ paketą. Norėdami pradėti naudoti „MiniProfiler“ savo projekte, turėsite sukonfigūruoti jį „Startup“ klasėje. Šis kodo fragmentas parodo, kaip galite iškviesti „AddMiniProfiler“ metodą „IServiceCollection“ egzemplioriuje, kad pridėtumėte „MiniProfiler“ prie dujotiekio.

public void „ConfigureServices“ („IServiceCollection“ paslaugos)

        {

paslaugos. „AddMiniProfiler“ (parinktys =>

options.RouteBasePath = "/ profiler"

            );

// Įprastas kodas

        }

Čia galite sužinoti daugiau apie parinktis, kurias galite nurodyti registruodami „MiniProfiler“ su dujotiekiu iš „MiniProfiler“ svetainės.

Taip pat turėtumėte pasikviesti „UseMiniProfiler“ metodą „IApplicationBuilder“ egzemplioriuje, kad pradėtumėte naudoti „MiniProfiler“ valdikliuose ir rodiniuose.

public void Configure (programa „IApplicationBuilder“, „IHostingEnvironment env“)

    {

app.UseMiniProfiler ();

// Įprastas kodas

    }

Tada pridėkite šias dvi eilutes žymos viduje faile _Layout.cshtml.

@ naudojant „StackExchange“. Profiliavimas

@addTagHelper *, „MiniProfiler.AspNetCore.Mvc“

Taip pat turėtumėte nurodyti, kur tinklalapyje turėtų būti rodomas „MiniProfiler“ langas, t. Y. Pateikimo pozicija. Norėdami tai padaryti, į žymą galite įtraukti šį teiginį.

Norėdami nustatyti ASP.Net Core MVC kodą, atlikite „MiniProfiler“ veiksmus

„MiniProfiler“ suteiks jums informacijos apie puslapio įkėlimo laiką ir informaciją, susijusią su duomenų bazių užklausų vykdymu. Paleidus programą, išvestis pasirodys taip, kaip parodyta 2 paveiksle. Atkreipkite dėmesį į „MiniProfiler“ langą viršutiniame dešiniajame ekrano kampe.

Norėdami sužinoti, kiek laiko reikia atlikti tam tikrai kodo daliai, galite pasinaudoti veiksmais. Šis kodo fragmentas parodo, kaip tai galima pasiekti.

public IActionResult Index ()

 {

var miniProfiler = MiniProfiler.Current;

Sąrašo autoriai = new Sąrašas ();

miniProfiler.RenderIncludes (tai.HttpContext);

naudojant („miniProfiler.Step“ („Gauti autorius“))

       {

Autoriai.Pridėti (naujas Autorius () {Id = 1, Vardas = "Joydip", Pavardė = "Kanjilal", Adresas = "Haidarabadas, Indija"});

Autoriai.Pridėti (naujas Autorius () {Id = 2, Vardas = "Steponas", Pavardė = "Smitas", Adresas = "NY, JAV"});

autoriai.Pridėti (naujas Autorius () {Id = 3, Vardas = "Anand", Pavardė = "Narayanan", Adresas = "Čenajus, Indija"});

Autoriai.Pridėti (naujas Autorius () {Id = 4, Vardas = "Steve", Pavardė = "Jones", Adresas = "Londonas, JK"});

       }

grįžti Žiūrėti (autoriai);

 }

Šis kodo fragmentas parodo, kaip atrodo aukščiau paminėta Autorių klasė.

visuomenės klasės Autorius

    {

public int Id {get; rinkinys; }

public string FirstName {get; rinkinys; }

vieša eilutė Pavardė {get; rinkinys; }

viešoji eilutė Adresas {get; rinkinys; }

    }

Paleisdami programą, stebėsite laiką, kurį užtruko žingsnis, kurį mes apibrėžėme, kaip parodyta 3 paveiksle. Įrašas, kurį paryškinau žalia spalva, rodo laiką, per kurį reikia atlikti žingsnį „Gauti autorius“.

Jei norite ignoruoti tam tikrą programos kodo dalį iš profiliavimo, galite nurodyti nepaisomą kodą, kaip parodyta toliau pateiktame kodo fragmente.

naudojant [MiniProfiler.Current.Ignore ()]

{

// Čia parašykite kodą, kurio neturite

// norite, kad „MiniProfiler“ būtų profiliuojamas

}

ADO.Net užklausų profiliavimui naudokite „MiniProfiler“

Taip pat galite naudoti „MiniProfiler“, kad galėtumėte peržiūrėti ADO.Net užklausas. Norėdami tai padaryti, turėtumėte pasinaudoti „ProfileDbConnection“ ir „ProfileDbCommand“ pranašumais, kaip parodyta žemiau esančiame kodo fragmente.

naudojant [SqlConnection connection = new SqlConnection (@ "Duomenų šaltinis = JOYDIP \ SQLEXPRESS; Pradinis katalogas = SyncDB; Trusted_Connection = Taip"))

     {

naudojant („ProfiledDbConnection profiledDbConnection“ = naujas „ProfiledDbConnection“ (ryšys, „MiniProfiler.Current“))

         {

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

profiluotasDbConnection.Open ();

naudojant komandą (SqlCommand = new SqlCommand

(„Pasirinkite * iš autorių“, ryšys))

               {

naudojant (ProfiledDbCommand profiledDbCommand =

nauja „ProfiledDbCommand“ (komanda, ryšys,

„MiniProfiler.Current“)

                       {                               

var duomenys =

profiledDbCommand.ExecuteReader ();

// Parašykite kodą čia, kad užpildytumėte Autorių sąrašą

                        }

                 }

          }                      

    }

Atkreipkite dėmesį, kaip „ProfileDbConnection“ ir „ProfileDbCommand“ suvynioja „DbConnection“ ir „DbCommand“ objektus. Daugiau apie tai, kaip naudoti šaltinio kodą naudojant „MiniProfiler“, galite sužinoti iš „MiniProfiler“ svetainės.

„MiniProfiler“ yra paprastas .Net, Ruby, Go ir Node.js profilių kūrėjas. „MiniProfiler“ galite naudoti norėdami profilizuoti užklausas, kurias sugeneruoja „Dapper“, „Linq2SQL“ ir „Entity Framework“. Be to, kad „MiniProfiler“ yra lengvai naudojamas, jūsų programoms nėra pridėta daug papildomų išlaidų. „MiniProfiler“ galite naudoti gamyboje naudojamų programų profiliavimui be reikšmingo poveikio našumui.