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.
- Käynnistä Visual Studio 2017 IDE.
- Napsauta Tiedosto> Uusi> Projekti.
- Valitse näytetystä malliluettelosta ”ASP.Net Core Web Application (.Net Core)”.
- Määritä projektille nimi.
- Tallenna projekti napsauttamalla OK.
- Uusi ikkuna, “New .Net Core Web Application…”, tulee näkyviin.
- Valitse .Net Core ajonaikaiseksi ja ASP.Net Core 2.1 (tai uudempi) ylhäältä avattavasta luettelosta. Käytän .Net Core 2.2: ta.
- Valitse projektimalliksi ”Web Application (Model-View-Controller)” (kuten alla olevassa kuvassa 1 on esitetty).
- Varmista, että valintaruudut “Ota Docker-tuki käyttöön” ja “Määritä HTTPS: lle” on poistettu. Emme käytä näitä ominaisuuksia täällä.
- Varmista, että ”Ei todentamista” on valittu. Emme myöskään käytä todennusta täällä.
- 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.
- Valitse projekti Solution Explorer -ikkunasta.
- Napsauta hiiren kakkospainikkeella ja valitse "Manage NuGet Packages ..."
- Hae ”MiniProfiler.AspNetCore.Mvc” -pakettia.
- 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.