Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 15688|Svar: 0

[ASP.NET] 8 sätt att förbättra prestandan i ditt ASP.NET Web API

[Kopiera länk]
Publicerad på 2016-01-11 14:37:43 | | | |
ASP.NET Web API är en fantastisk teknik. Att skriva webb-API:er är så enkelt att många utvecklare inte lägger tid på att strukturera sina applikationer för att uppnå bra exekveringsprestanda.
I den här artikeln kommer jag att gå igenom 8 tekniker för att förbättra prestandan hos ASP.NET webb-API:er.
1) Använd det snabbaste JSON-serialiseringsverktyget
Serialiseringen av JSON har en avgörande inverkan på prestandan för hela ASP.NET Web API. I ett av mina projekt bytte jag från JSON.NET serializer till ServiceStack.Text i ett och ett halvt år.
Jag har mätt att prestandan för Web API har förbättrats med cirka 20%. Jag rekommenderar starkt att du provar detta serialiseringsverktyg. Här är några aktuella jämförelsedata om prestandan hos populära serialiseringsverktyg.
SerializerPerformanceGraf
Källa: theburningmonk
Uppdatering: Det verkar som att StackOverflow använder Jil, deras påstådda JSON-serialiseringsverktyg hittills. Testdata finns på deras GitHub-sida Jil serializer.
2) Manuellt serialisera JSON från DataReader
Jag har använt detta tillvägagångssätt i mina projekt och har fått prestationsfördelar.
Du kan manuellt skapa JSON-strängar från DataReader och undvika onödig objektskapande, så att du inte behöver ta värden från DataReader och skriva till objekt, sedan ta värden från dessa objekt och använda JSON Serializer för att generera JSON.
Använd StringBuilder för att generera JSON och returnera StringContent i slutet som innehållet i svaret i WebAPI:et.

Du kan läsa fler sätt att göra detta på Rick Strahls blogg
3) Använd andra protokollformat (protokollbuffert, meddelandepaket) så mycket som möjligt
Om du kan använda andra meddelandeformat i ditt projekt, såsom protokollbuffertar eller meddelandepaket, istället för att använda JSON.
Du får en enorm prestandafördel, inte bara för att protokollbuffertar är mycket snabba i serialisering, utan också för att de formateras snabbare än JSON i de returnerade resultaten.
4) Implementera komprimering
Använd GZIP eller Deflate i ditt ASP.NET Web API.
Komprimering är ett enkelt och effektivt sätt att minska storleken och responsiviteten hos svarspaket.
Detta är en mycket nödvändig funktion, du kan läsa fler artiklar om komprimering på min blogg ASP.NET Web API GZip compression ActionFilter med 8 rader kod.
5) Använd caching
Att använda output caching i Web API-metoden är djupgående. Till exempel, om ett stort antal användare får tillgång till svarsinnehåll som bara ändras en gång om dagen.
Om du vill implementera manuell caching, som att cache användarlösenord till minnet, se mitt blogginlägg Enkelt sätt att implementera caching i ASP.NET Web API.
6) Använd typiska ADO.NET när det är möjligt
Manuellt skrivna ADO.NET är fortfarande det snabbaste sättet att hämta värden från databasen. Om prestandan hos dina webb-API:er är riktigt viktig för dig, använd då inte ORM:er.
Du kan se prestandajämförelser mellan de mest populära ORM:erna.
ORMMapper


Snygg och handskriven fetch-kod är snabb, och mycket riktigt, alla ORM:er är långsammare än de tre.
LLBLGen med en resultset-cache är snabb, men den måste upprepa resultsset och instansiera objektet i minnet igen.
7) Implementera en asynkron metod i webb-API:et
Att använda en asynkron webb-API-tjänst ökar dramatiskt antalet HTTP-förfrågningar som webb-API:er behandlar.
Implementeringen är enkel, använd bara det asynkrona nyckelordet och ändra returvärdestypen för din metod till Task.

8) Returnerar flera resultatmängder och kombinationer av mängder
Att minska antalet överföringar är inte bara fördelaktigt för flera databaser, utan även för webb-API:er, vilket gör att du kan utnyttja kraften i resultatuppsättningar.
Detta innebär att du kan extrahera flera resultatuppsättningar från DataReader, se följande demokod:

Du kan returnera flera objekt i ett enda svar från ett webb-API, prova att kombinera dina returnerade objekt och returnera följande objekt:

Detta minskar HTTP-förfrågningar till ditt WEB API.
Tack för att du läste den här artikeln.




Föregående:SyntaxError: Missing parentheses in call to print
Nästa:VSFTPD för att lägga till nya användare
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com