Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 15688|Vastaus: 0

[ASP.NET] 8 tapaa parantaa ASP.NET Web API:n suorituskykyä

[Kopioi linkki]
Julkaistu 11.1.2016 14.37.43 | | | |
ASP.NET Web API on erinomainen teknologia. Web-API:n kirjoittaminen on niin helppoa, että monet kehittäjät eivät käytä aikaa sovellustensa jäsentämiseen hyvän suorituskyvyn saavuttamiseksi.
Tässä artikkelissa käsittelen kahdeksaa tekniikkaa ASP.NET Web-API:n suorituskyvyn parantamiseksi.
1) Käytä nopeinta JSON-serialisointityökalua
JSONin serialisointi vaikuttaa kriittisesti koko ASP.NET Web API:n suorituskykyyn. Yhdessä projekteistani vaihdoin JSON.NET serializaattorista ServiceStack.Textiin puolentoista vuoden ajan.
Olen mitannut, että Web API:n suorituskyky on parantunut noin 20%. Suosittelen lämpimästi kokeilemaan tätä sarjallistamistyökalua. Tässä on viimeaikaisia vertailutietoja suosittujen sarjallistamistyökalujen suorituskyvystä.
SerializerPerformanceGraf
Lähde: theburningmunk
Päivitys: Vaikuttaa siltä, että StackOverflow käyttää Jil-työkalua, heidän tähän asti väitettyä JSON-serialisointityökaluaan. Testidata löytyy heidän GitHub-sivultaan Jil serializer.
2) Manuaalinen JSON-sarjallinen DataReaderista
Olen käyttänyt tätä lähestymistapaa projekteissani ja saanut suorituskykyetuja.
Voit luoda JSON-merkkijonoja manuaalisesti DataReaderista ja välttää tarpeettoman objektien luomisen, jolloin sinun ei tarvitse ottaa arvoja DataReaderista ja kirjoittaa objekteihin, sitten ottaa arvoja näistä olioista ja käyttää JSON Serializeria JSONin generointiin.
Käytä StringBuilderia luodaksesi JSON:n ja palauttaaksesi StringContentin lopuksi vastauksen sisältönä WebAPI:ssa.

Voit tutustua lisää tapoja tehdä tämä Rick Strahlin blogista
3) Käytä muita protokollaformaatteja (protokollapuskuri, viestipaketti) mahdollisimman paljon
Jos voit käyttää projektissasi muita viestimuotoja, kuten Protocol Buffers tai MessagePacks, JSONin sijaan.
Saat valtavan suorituskykyedun, ei ainoastaan siksi, että protokollapuskurit ovat erittäin nopeita sarjallistamisessa, vaan myös siksi, että ne muotoillaan nopeammin kuin JSON palautetuissa tuloksissa.
4) Toteuta pakkaus
Käytä GZIPiä tai Deflatea ASP.NET Web API:ssasi.
Pakkaus on yksinkertainen ja tehokas tapa vähentää vastauspakettien kokoa ja reagointikykyä.
Tämä on erittäin välttämätön ominaisuus, voit tutustua blogistani lisää artikkeleita pakkauksesta ASP.NET Web API GZip -pakkaus ActionFilter, jossa on 8 koodiriviä.
5) Käytä välimuistia
Tulostusvälimuistin käyttö Web API -menetelmässä on merkittävää. Esimerkiksi, jos suuri määrä käyttäjiä käyttää vastaussisältöä, joka muuttuu vain kerran päivässä.
Jos haluat toteuttaa manuaalisen välimuistin, kuten käyttäjän salasanojen tallentamisen muistiin, katso blogikirjoitukseni Simple way to implement caching in ASP.NET Web API.
6) Käytä tyypillisiä ADO.NET aina kun mahdollista
Manuaalisesti kirjoitettu ADO.NET on edelleen nopein tapa saada arvoja tietokannasta. Jos web-API:idesi suorituskyky on sinulle todella tärkeää, älä käytä ORM:iä.
Voit nähdä suorituskykyvertailuja suosituimpien ORM-mallien välillä.
ORMMapper


Tyylikäs ja käsin kirjoitettu noutokoodi ovat nopeita, ja totta kai kaikki ORM:t ovat hitaampia kuin nämä kolme.
LLBLGen, jossa on resultset-välimuisti, on nopea, mutta sen täytyy toistaa resultset ja luoda objekti muistiin uudelleen.
7) Toteuttaa asynkroninen lähestymistapa Web API:ssa
Asynkronisen Web API -palvelun käyttö lisää merkittävästi HTTP-pyyntöjen määrää, joita Web API:t käsittelevät.
Toteutus on yksinkertainen, käytä vain asynkronista avainsanaa ja vaihda metodisi palautusarvotyyppi Taskiksi.

8) Palauttaa useita tulosjoukkoja ja joukkojen yhdistelmiä
Siirtojen määrän vähentäminen on hyödyllistä paitsi useille tietokannoille, myös Web-API:ille, jotka mahdollistavat tulosjoukkojen voiman hyödyntämisen.
Tämä tarkoittaa, että voit poimia useita tulosjoukkoja DataReaderista, katso seuraava demokoodi:

Voit palauttaa useita objekteja yhdellä vastauksella Web API:sta, kokeile yhdistää palautetut objektit ja palauttaa seuraavat objektit:

Tämä vähentää HTTP-pyyntöjä WEB API:llesi.
Kiitos, että luit tämän artikkelin.




Edellinen:SyntaxError: Missing parentheses in call to print
Seuraava:VSFTPD uusien käyttäjien lisäämiseen
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com