Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 15688|Răspunde: 0

[ASP.NET] 8 moduri de a îmbunătăți performanța API-ului tău ASP.NET Web

[Copiază linkul]
Postat pe 11.01.2016 14:37:43 | | | |
ASP.NET Web API este o tehnologie excelentă. Scrierea API-urilor web este atât de ușoară încât mulți dezvoltatori nu pierd timp structurându-și aplicațiile pentru a obține performanțe bune la execuție.
În acest articol, voi acoperi 8 tehnici pentru a îmbunătăți performanța API-urilor web ASP.NET.
1) Utilizarea celui mai rapid instrument de serializare JSON
Serializarea JSON are un impact critic asupra performanței întregii ASP.NET Web API. În unul dintre proiectele mele, am trecut de la serializorul JSON.NET la ServiceStack.Text timp de un an și jumătate.
Am măsurat că performanța API-ului web s-a îmbunătățit cu aproximativ 20%. Îți recomand cu tărie să încerci acest instrument de serializare. Iată câteva date recente de comparație privind performanța instrumentelor populare de serializare.
SerializerPerformanceGraf
Sursa: călugărul arzător
Actualizare: Se pare că StackOverflow folosește Jil, instrumentul lor de serializare JSON pretins până în prezent. Datele de test pot fi găsite pe pagina lor GitHub Jil serializer.
2) Serializarea manuală a JSON-ului din DataReader
Am folosit această abordare în proiectele mele și am primit beneficii de performanță.
Poți crea manual șiruri JSON din DataReader și să eviți crearea inutilă de obiecte, astfel încât să nu fie nevoie să iei valori din DataReader și să scrii în obiecte, apoi să iei valori din acele obiecte și să folosești JSON Serializer pentru a genera JSON.
Folosește StringBuilder pentru a genera JSON și returnează StringContent la final ca conținut al răspunsului în WebAPI.

Poți vedea mai multe modalități de a face asta pe blogul lui Rick Strahl
3) Folosirea altor formate de protocol (protocol buffer, pachet de mesaje) pe cât posibil
Dacă poți folosi alte formate de mesaje în proiectul tău, cum ar fi Protocol Buffers sau MessagePacks, în loc să folosești JSON.
Vei obține un avantaj uriaș de performanță, nu doar pentru că Protocol Buffers sunt foarte rapizi în serializare, ci și pentru că sunt formatate mai rapid decât JSON în rezultatele returnate.
4) Implementarea compresiei
Folosește GZIP sau Deflate în API-ul tău ASP.NET Web.
Compresia este o metodă simplă și eficientă de a reduce dimensiunea și răspunsul pachetelor de răspuns.
Aceasta este o funcție foarte necesară, poți consulta mai multe articole despre compresie pe blogul meu ASP.NET Web API, GZip compresie, ActionFilter, cu 8 linii de cod.
5) Utilizarea caching-ului
Folosirea caching-ului de ieșire în metoda Web API este profundă. De exemplu, dacă un număr mare de utilizatori accesează conținutul de răspuns care se schimbă doar o dată pe zi.
Dacă doriți să implementați cache manuală, cum ar fi memorizarea parolelor utilizatorilor, consultați postarea mea de pe blog Mod simplu de a implementa caching în API-ul web ASP.NET.
6) Folosiți ADO.NET tipice ori de câte ori este posibil
Scrierea manuală ADO.NET rămâne cea mai rapidă metodă de a obține valori din baza de date. Dacă performanța API-urilor tale web este cu adevărat importantă pentru tine, atunci nu folosi ORM-uri.
Poți vedea comparații de performanță între cele mai populare ORM-uri.
ORMMapper


Codul de preluare elegant și scris de mână este rapid și, într-adevăr, toate ORM-urile sunt mai lente decât cele trei.
LLBLGen cu cache de rezultate este rapid, dar trebuie să re-itereze rezultatul și să instanțieze obiectul din nou în memorie.
7) Implementarea unei abordări asincrone în API-ul web
Folosirea unui serviciu Web API asincron crește dramatic numărul de cereri HTTP procesate de API-urile Web.
Implementarea este simplă, doar folosește cuvântul cheie async și schimbă tipul de valoare returnată al metodei tale în Task.

8) Returnează mai multe seturi de rezultate și combinații de mulțimi
Reducerea numărului de transferuri nu este benefică doar pentru mai multe baze de date, ci și pentru API-urile Web, care îți permit să folosești puterea seturilor de rezultate.
Aceasta înseamnă că poți extrage mai multe seturi de rezultate din DataReader, vezi următorul cod demo:

Poți returna mai multe obiecte într-un singur răspuns dintr-un API web, încearcă să combini obiectele returnate și returnezi următoarele obiecte:

Acest lucru va reduce cererile HTTP către API-ul tău WEB.
Mulțumesc că ați citit acest articol.




Precedent:SyntaxError: Missing parentheses in call to print
Următor:vsftpd pentru a adăuga utilizatori noi
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com