Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 15688|Svar: 0

[ASP.NET] 8 måder at forbedre ydeevnen af dit ASP.NET Web API

[Kopier link]
Opslået på 11/01/2016 14.37.43 | | | |
ASP.NET Web API er en fantastisk teknologi. At skrive web-API'er er så nemt, at mange udviklere ikke bruger tid på at strukturere deres applikationer for at opnå god eksekveringsydelse.
I denne artikel vil jeg dække 8 teknikker til at forbedre ydeevnen af ASP.NET web-API'er.
1) Brug det hurtigste JSON-serialiseringsværktøj
Serialiseringen af JSON har en afgørende indvirkning på ydeevnen af hele ASP.NET Web API'en. I et af mine projekter skiftede jeg fra JSON.NET serializer til ServiceStack.Text i halvandet år.
Jeg har målt, at ydeevnen af Web API'en er forbedret med omkring 20%. Jeg kan varmt anbefale, at du prøver dette serialiseringsværktøj. Her er nogle nylige sammenligningsdata om ydeevnen af populære serialiseringsværktøjer.
SerializerPerformanceGraf
Kilde: theburningmonk
Opdatering: Det ser ud til, at StackOverflow bruger Jil, deres påståede JSON-serialiseringsværktøj til dato. Testdata kan findes på deres GitHub-side Jil serializer.
2) Manuelt serialisere JSON fra DataReader
Jeg har brugt denne tilgang i mine projekter og har modtaget præstationsfordele.
Du kan manuelt oprette JSON-strenge fra DataReader og undgå unødvendig objektoprettelse, så du ikke behøver at tage værdier fra DataReader og skrive til objekter, og derefter tage værdier fra disse objekter og bruge JSON Serializer til at generere JSON.
Brug StringBuilder til at generere JSON og returner StringContent til sidst som indholdet af svaret i WebAPI'en.

Du kan se flere måder at gøre dette på Rick Strahls blog
3) Brug andre protokolformater (protokolbuffer, beskedpakke) så meget som muligt
Hvis du kan bruge andre beskedformater i dit projekt, såsom Protocol Buffers eller MessagePacks, i stedet for at bruge JSON.
Du får en stor ydelsesfordel, ikke kun fordi protokolbuffere er meget hurtige i serialisering, men også fordi de er formateret hurtigere end JSON i de returnerede resultater.
4) Implementér komprimering
Brug GZIP eller Deflate i dit ASP.NET Web API.
Komprimering er en simpel og effektiv måde at reducere størrelsen og responsiviteten af responspakker.
Dette er en meget nødvendig funktion, du kan læse flere artikler om komprimering på min blog ASP.NET Web API GZip compression ActionFilter med 8 linjer kode.
5) Brug caching
Brugen af output caching i Web API-metoden er dybtgående. For eksempel, hvis et stort antal brugere får adgang til svarindhold, ændres det kun én gang om dagen.
Hvis du vil implementere manuel caching, som for eksempel at cache brugeradgangskoder til hukommelsen, se mit blogindlæg Simpel måde at implementere caching i ASP.NET Web API.
6) Brug typisk ADO.NET når det er muligt
Manuelt skrevet ADO.NET er stadig den hurtigste måde at hente værdier fra databasen på. Hvis ydeevnen af dine web-API'er er virkelig vigtig for dig, så brug ikke ORM'er.
Du kan se performance-sammenligninger mellem de mest populære ORM'er.
ORMMapper


Elegant og håndskrevet fetch-kode er hurtige, og ganske rigtigt, alle ORM'er er langsommere end de tre.
LLBLGen med en resultset-cache er hurtig, men den skal gentage resultsset og instansiere objektet i hukommelsen igen.
7) Implementér en asynkron tilgang i Web API'en
Brugen af en asynkron Web API-tjeneste øger dramatisk antallet af HTTP-forespørgsler, som Web API'er behandler.
Implementeringen er simpel, brug bare det asynkrone nøgleord og ændr returværditypen for din metode til Opgave.

8) Returnerer flere resultatsæt og kombinationer af sæt
At reducere antallet af overførsler er ikke kun gavnligt for flere databaser, men også for web-API'er, som giver dig mulighed for at udnytte kraften i resultatsæt.
Det betyder, at du kan udtrække flere resultatsæt fra DataReader, se følgende demokode:

Du kan returnere flere objekter i ét svar fra et web-API, prøv at kombinere dine returnerede objekter og returner følgende objekter:

Dette vil reducere HTTP-forespørgsler til din WEB API.
Tak fordi du læste denne artikel.




Tidligere:SyntaxError: Missing parentheses in call to print
Næste:vsftpd for at tilføje nye brugere
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com