Programovanie

Ako používať MiniProfiler v ASP.Net Core

Výkon webových aplikácií je po celom svete vážnym problémom. Vývojári majú veľa nástrojov, ktoré môžu použiť na profilovanie webových aplikácií a hľadanie úzkych miest výkonu. MiniProfiler je jeden taký nástroj - jednoduchý, ale výkonný nástroj na profilovanie webových aplikácií. MiniProfiler vám pomôže zistiť pomalé dotazy, pomalé časy odozvy servera a ďalšie.

MiniProfiler je k dispozícii pre .Net, ASP.Net a ASP.Net Core. Dokumentáciu pre MiniProfiler nájdete na GitHub. Tento článok predstavuje diskusiu o MiniProfileri, prečo je užitočný a ako ho môžeme použiť na profilovanie aplikácií ASP.Net Core MVC a objavovanie problémov s výkonom v našich aplikáciách.

Vytvorte projekt ASP.Net Core MVC v Visual Studio 2017

Najprv si vytvoríme projekt ASP.Net Core MVC v Visual Studio. Ak je Visual Studio 2017 vo vašom systéme funkčný, vytvorte projekt ASP.Net Core MVC podľa krokov uvedených nižšie.

  1. Spustite Visual Studio 2017 IDE.
  2. Kliknite na Súbor> Nové> Projekt.
  3. V zozname zobrazených šablón vyberte „Webová aplikácia ASP.Net Core (.Net Core)“.
  4. Zadajte názov projektu.
  5. Kliknutím na tlačidlo OK projekt uložíte.
  6. Zobrazí sa nové okno „Nová webová aplikácia .Net Core…“.
  7. Ako runtime vyberte .Net Core a z rozbaľovacieho zoznamu v hornej časti vyberte ASP.Net Core 2.1 (alebo novší). Používam .Net Core 2.2.
  8. Vyberte „Web Application (Model-View-Controller)“ ako šablónu projektu (ako je znázornené na obrázku 1 nižšie).
  9. Skontrolujte, či nie sú začiarknuté políčka „Povoliť podporu Docker“ a „Konfigurovať pre HTTPS“. Tieto funkcie tu nebudeme používať.
  10. Skontrolujte, či je vybratá možnosť „Žiadne overenie“. Ani tu nebudeme používať autentifikáciu.
  11. Kliknite na tlačidlo OK.

Nasledovaním týchto krokov vytvoríte nový projekt ASP.Net Core MVC v Visual Studio. Tento projekt použijeme na profilovanie aplikácie pomocou programu MiniProfiler.

Nainštalujte a nakonfigurujte MiniProfiler v ASP.Net Core

Ak chcete začať pracovať s programom MiniProfiler, musíte si nainštalovať potrebný balík NuGet. Pri inštalácii programu MiniProfiler do projektu postupujte podľa krokov uvedených nižšie.

  1. Vyberte projekt v okne Solution Explorer.
  2. Kliknite pravým tlačidlom myši a vyberte možnosť „Spravovať balíčky NuGet ...“
  3. Vyhľadajte balík „MiniProfiler.AspNetCore.Mvc“.
  4. Kliknutím na tlačidlo „Inštalovať“ nainštalujete balík NuGet.

Týmto sa do vášho projektu nainštaluje balíček NuGet MiniProfiler.AspNetCore.Mvc. Ak chcete vo svojom projekte začať používať program MiniProfiler, budete si ho musieť nakonfigurovať v triede Spustenie. Nasledujúci úryvok kódu ukazuje, ako môžete volať metódu AddMiniProfiler na inštancii IServiceCollection a pridať tak do potrubia MiniProfiler.

public void ConfigureServices (služby IServiceCollection)

        {

services.AddMiniProfiler (možnosti =>

options.RouteBasePath = "/ profiler"

            );

// Obvyklý kód

        }

Viac informácií o možnostiach, ktoré môžete určiť pri registrácii MiniProfiler s kanálom, sa dozviete z webovej stránky MiniProfiler tu.

Mali by ste tiež vyvolať metódu UseMiniProfiler na inštancii IApplicationBuilder, aby ste mohli začať používať MiniProfiler vo svojich radičoch a zobrazeniach.

public void Configure (aplikácia IApplicationBuilder, IHostingEnvironment env)

    {

app.UseMiniProfiler ();

// Obvyklý kód

    }

Ďalej pridajte nasledujúce dva riadky do značky v súbore _Layout.cshtml.

@ using StackExchange.Profiling

@addTagHelper *, MiniProfiler.AspNetCore.Mvc

Mali by ste tiež určiť, kde na webovej stránke by sa malo zobraziť okno MiniProfiler, tj. Pozícia vykreslenia. Za týmto účelom môžete do značky vložiť nasledujúce vyhlásenie.

Pomocou krokov v programe MiniProfiler môžete profilovať kód ASP.Net Core MVC

MiniProfiler vás informuje o časoch načítania stránky a informáciách týkajúcich sa výkonu databázových dotazov. Po spustení aplikácie sa výstup zobrazí ako na obrázku 2 nižšie. Všimnite si okno MiniProfiler v pravom hornom rohu obrazovky.

Ak sa chcete dozvedieť čas potrebný na vykonanie konkrétnej časti vášho kódu, môžete využiť kroky. Nasledujúci úryvok kódu ilustruje, ako je to možné dosiahnuť.

verejný index IActionResult ()

 {

var miniProfiler = MiniProfiler.Current;

Autori zoznamu = nový Zoznam ();

miniProfiler.RenderIncludes (this.HttpContext);

pomocou (miniProfiler.Step ("Získať autorov"))

       {

autori.Pridať (nový autor () {Id = 1, meno = "Joydip", priezvisko = "Kanjilal", adresa = "Hyderabad, India"});

autori.Pridať (nový autor () {Id = 2, meno = "Stephen", priezvisko = "Smith", adresa = "NY, USA"});

autori.Pridať (nový autor () {Id = 3, meno = "Anand", priezvisko = "Narayanan", adresa = "Chennai, India"});

autori.Pridať (nový autor () {Id = 4, meno = "Steve", priezvisko = "Jones", adresa = "Londýn, Veľká Británia"});

       }

návrat Zobraziť (autori);

 }

Nasledujúci úryvok kódu ukazuje, ako vyzerá vyššie uvedená trieda Author.

verejná trieda Autor

    {

public int Id {get; sada; }

verejný reťazec FirstName {get; sada; }

verejný reťazec Priezvisko {get; sada; }

public string Adresa {get; sada; }

    }

Pri spustení aplikácie budete pozorovať čas, ktorý sme strávili krokom, ktorý sme definovali, ako je to znázornené na obrázku 3 nižšie. Položka, ktorú som zvýraznil zelenou farbou, ukazuje čas potrebný na vykonanie kroku „Získať autorov“.

Ak chcete z profilovania ignorovať konkrétnu časť kódu svojej aplikácie, môžete určiť kód, ktorý sa má ignorovať, ako je uvedené v útržku kódu nižšie.

pomocou (MiniProfiler.Current.Ignore ())

{

// Sem napíš kód, ktorý nemáš

// chce MiniProfiler profilovať

}

Použite MiniProfiler na profilovanie dotazov ADO.Net

MiniProfiler môžete tiež použiť na profilovanie dotazov ADO.Net. Aby ste to dosiahli, budete musieť využiť výhody profilov ProfileDbConnection a ProfileDbCommand, ako je uvedené v útržku kódu nižšie.

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

     {

pomocou (ProfiledDbConnection profilovanýDbConnection = nový ProfiledDbConnection (pripojenie, MiniProfiler.Current))

         {

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

profiledDbConnection.Open ();

pomocou (príkaz SqlCommand = nový SqlCommand

(„Vybrať * od autorov“, pripojenie))

               {

pomocou (ProfiledDbCommand profilovanýDbCommand =

nový ProfiledDbCommand (príkaz, pripojenie,

MiniProfiler.Current))

                       {                               

var dáta =

profiledDbCommand.ExecuteReader ();

// Sem napíšete kód, aby ste vyplnili zoznam autorov

                        }

                 }

          }                      

    }

Všimnite si, ako ProfileDbConnection a ProfileDbCommand obaľujú objekty DbConnection a DbCommand. Viac informácií o tom, ako profilovať zdrojový kód pomocou programu MiniProfiler, sa dozviete z webovej stránky MiniProfiler.

MiniProfiler je jednoduchý profilovač pre .Net, Ruby, Go a Node.js. MiniProfiler môžete použiť na profilovanie dotazov, ktoré generujú Dapper, Linq2SQL a Entity Framework. MiniProfiler okrem toho, že sa ľahko používa, neprináša vašim aplikáciám veľa režijných nákladov. Program MiniProfiler môžete použiť na profilovanie aplikácií vo výrobe bez výrazného dopadu na výkon.

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