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.
|