Programmēšana

Kā lietot MiniProfiler ASP.Net Core

Tīmekļa lietojumprogrammu veiktspēja rada nopietnas bažas visā pasaulē. Izstrādātājiem ir daudz rīku, kurus viņi var izmantot, lai profilētu tīmekļa lietojumprogrammas un atrastu veiktspējas vājās vietas. MiniProfiler ir viens no šādiem rīkiem - vienkāršs, tomēr spēcīgs rīks tīmekļa lietojumprogrammu profilēšanai. MiniProfiler palīdz noteikt lēnas darbības vaicājumus, lēnu servera atbildes laiku un daudz ko citu.

MiniProfiler ir pieejams .Net, ASP.Net un ASP.Net Core. MiniProfiler dokumentāciju atradīsit vietnē GitHub. Šajā rakstā ir sniegta diskusija par MiniProfiler, kāpēc tā ir noderīga un kā mēs to varam izmantot, lai profilētu ASP.Net Core MVC lietojumprogrammas un atklātu veiktspējas problēmas mūsu lietojumprogrammās.

Izveidojiet ASP.Net Core MVC projektu Visual Studio 2017

Vispirms izveidosim ASP.Net Core MVC projektu Visual Studio. Ja jūsu sistēmā darbojas un darbojas Visual Studio 2017, veiciet tālāk norādītās darbības, lai izveidotu ASP.Net Core MVC projektu.

  1. Palaidiet Visual Studio 2017 IDE.
  2. Noklikšķiniet uz Fails> Jauns> Projekts.
  3. Parādīto veidņu sarakstā atlasiet “ASP.Net Core Web Application (.Net Core)”.
  4. Norādiet projekta nosaukumu.
  5. Noklikšķiniet uz Labi, lai saglabātu projektu.
  6. Tiks parādīts jauns logs “New .Net Core Web Application…”.
  7. Augšdaļā esošajā nolaižamajā sarakstā atlasiet .Net Core kā izpildlaiku un ASP.Net Core 2.1 (vai jaunāku). Es izmantoju .Net Core 2.2.
  8. Kā projekta veidni atlasiet “Web Application (Model-View-Controller)” (kā parādīts 1. attēlā).
  9. Pārliecinieties, vai nav atzīmētas izvēles rūtiņas “Enable Docker Support” un “Configure for HTTPS”. Mēs šeit neizmantosim šīs funkcijas.
  10. Pārliecinieties, vai ir atlasīta opcija “Nav autentifikācijas”. Arī šeit mēs neizmantosim autentifikāciju.
  11. Noklikšķiniet uz Labi.

Veicot šīs darbības, Visual Studio tiks izveidots jauns ASP.Net Core MVC projekts. Mēs izmantosim šo projektu lietojumprogrammas profilēšanai, izmantojot MiniProfiler.

Instalējiet un konfigurējiet MiniProfiler ASP.Net Core

Lai sāktu darbu ar MiniProfiler, jums jāinstalē nepieciešamā NuGet pakete. Lai projektā instalētu MiniProfiler, veiciet tālāk norādītās darbības.

  1. Logā Solution Explorer atlasiet projektu.
  2. Ar peles labo pogu noklikšķiniet un atlasiet “Manage NuGet Packages ...”
  3. Meklējiet paketi “MiniProfiler.AspNetCore.Mvc”.
  4. Noklikšķiniet uz “Install”, lai instalētu NuGet pakotni.

Tas jūsu projektā instalēs MiniProfiler.AspNetCore.Mvc NuGet pakotni. Lai projektā sāktu izmantot MiniProfiler, tas būs jākonfigurē Startup klasē. Šis koda fragments parāda, kā jūs varat izsaukt AddMiniProfiler metodi IServiceCollection instancē, lai pievienotu MiniProfiler cauruļvadam.

public void ConfigureServices (IServiceCollection pakalpojumi)

        {

pakalpojumi. AddMiniProfiler (opcijas =>

options.RouteBasePath = "/ profiler"

            );

// Parastais kods

        }

Šeit varat uzzināt vairāk par iespējām, kuras varat norādīt, reģistrējot MiniProfiler ar cauruļvadu no vietnes MiniProfiler.

Lai sāktu izmantot MiniProfiler savos kontrolleros un skatos, IApplicationBuilder instancē jāizsauc arī UseMiniProfiler metode.

public void Configure (lietotne IApplicationBuilder, IHostingEnvironment env)

    {

app.UseMiniProfiler ();

// Parastais kods

    }

Pēc tam pievienojiet šīs divas rindiņas tagā failā _Layout.cshtml.

@ izmantojot StackExchange. Profilēšana

@addTagHelper *, MiniProfiler.AspNetCore.Mvc

Jums arī jānorāda, kur tīmekļa lapā jāparāda MiniProfiler logs, t.i., renderēšanas pozīcija. Lai to izdarītu, tagā varat iekļaut šādu paziņojumu.

Lai profilētu ASP.Net Core MVC kodu, izmantojiet MiniProfiler darbības

MiniProfiler informēs jūs par lapas ielādes laiku un informāciju, kas saistīta ar datu bāzes vaicājumu izpildi. Palaidot lietojumprogrammu, izeja parādīsies kā parādīts 2. attēlā. Ievērojiet MiniProfiler logu ekrāna augšējā labajā stūrī.

Lai uzzinātu, cik ilgs laiks nepieciešams konkrētas koda daļas izpildei, varat izmantot darbības. Šis koda fragments parāda, kā to var panākt.

publiskais IActionResult indekss ()

 {

var miniProfiler = MiniProfiler.Current;

Saraksta autori = new Saraksts ();

miniProfiler.RenderIncludes (this.HttpContext);

izmantojot (miniProfiler.Step ("Iegūt autorus"))

       {

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

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

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

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

       }

atgriezties View (autori);

 }

Šis koda fragments parāda, kā izskatās iepriekš minētā Autoru klase.

sabiedrības klase Autors

    {

public int Id {get; komplekts; }

publiskā virkne FirstName {get; komplekts; }

publiskā virkne Uzvārds {get; komplekts; }

publiska virkne Adrese {get; komplekts; }

    }

Palaižot lietojumprogrammu, jūs ievērosiet laiku, kas paiet pēc mūsu definētās darbības, kā parādīts 3. attēlā. Ieraksts, kuru esmu iezīmējis zaļā krāsā, parāda laiku, kas vajadzīgs, lai izpildītu soli “Iegūt autorus”.

Ja vēlaties ignorēt noteiktu lietojumprogrammas koda daļu no profilēšanas, varat norādīt ignorējamo kodu, kā parādīts zemāk esošajā koda fragmentā.

izmantojot [MiniProfiler.Current.Ignore ()]

{

// Šeit uzrakstiet kodu, kas jums nav

// vēlaties, lai MiniProfiler tiktu profilēts

}

ADO.Net vaicājumu profilēšanai izmantojiet MiniProfiler

ADO.Net vaicājumu profilēšanai varat izmantot arī MiniProfiler. Lai to izdarītu, jums būs jāizmanto ProfileDbConnection un ProfileDbCommand priekšrocības, kā parādīts zemāk esošajā koda fragmentā.

izmantojot (SqlConnection savienojums = jauns SqlConnection (@ "Datu avots = JOYDIP \ SQLEXPRESS; Sākotnējais katalogs = SyncDB; Trusted_Connection = Jā"))

     {

izmantojot (ProfiledDbConnection profiledDbConnection = jauns ProfiledDbConnection (savienojums, MiniProfiler.Current))

         {

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

profiledDbConnection.Open ();

izmantojot komandu SqlCommand = new SqlCommand

("Atlasīt * no autoriem", savienojums))

               {

izmantojot (ProfiledDbCommand profiledDbCommand =

jauns ProfiledDbCommand (komanda, savienojums,

MiniProfiler.Current))

                       {                               

var dati =

profiledDbCommand.ExecuteReader ();

// Uzrakstiet kodu šeit, lai aizpildītu Autoru sarakstu

                        }

                 }

          }                      

    }

Ievērojiet, kā ProfileDbConnection un ProfileDbCommand aptin objektus DbConnection un DbCommand. Vairāk par avota koda profilēšanu, izmantojot MiniProfiler, varat uzzināt no vietnes MiniProfiler.

MiniProfiler ir vienkāršs .Net, Ruby, Go un Node.js profilētājs. MiniProfiler var izmantot, lai profilētu vaicājumus, kurus ģenerē Dapper, Linq2SQL un Entity Framework. Papildus tam, ka MiniProfiler ir ērti lietojams, tas jūsu lietojumprogrammām nepievieno daudz papildu izmaksu. MiniProfiler var izmantot lietojumprogrammu profilēšanai ražošanā bez būtiskas ietekmes uz darbību.

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