Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 15688|Atbildi: 0

[ASP.NET] 8 veidi, kā uzlabot ASP.NET tīmekļa API veiktspēju

[Kopēt saiti]
Publicēts 11.01.2016 14:37:43 | | | |
ASP.NET Web API ir lieliska tehnoloģija. Web API rakstīšana ir tik vienkārša, ka daudzi izstrādātāji netērē laiku, strukturējot savas lietojumprogrammas, lai iegūtu labu izpildes veiktspēju.
Šajā rakstā es apskatīšu 8 paņēmienus, kā uzlabot ASP.NET Web API veiktspēju.
1) Izmantojiet ātrāko JSON serializācijas rīku
JSON serializācijai ir kritiska ietekme uz visas ASP.NET Web API veiktspēju. Vienā no saviem projektiem es pusotru gadu pārgāju no JSON.NET serializatora uz ServiceStack.Text.
Esmu mērījis, ka tīmekļa API veiktspēja ir uzlabojusies par aptuveni 20%. Es ļoti iesaku izmēģināt šo serializācijas rīku. Šeit ir daži jaunākie salīdzinājuma dati par populāru serializācijas rīku veiktspēju.
SerializerPerformanceGraf
Avots: dedzināšanas mūks
Atjauninājums: Šķiet, ka StackOverflow izmanto Jil, viņu apgalvoto JSON serializācijas rīku līdz šim. Testa datus var atrast viņu GitHub lapā Jil serializer.
2) Manuāli serializējiet JSON no DataReader
Es esmu izmantojis šo pieeju savos projektos un esmu saņēmis snieguma priekšrocības.
Varat manuāli izveidot JSON virknes no DataReader un izvairīties no nevajadzīgas objektu izveides, lai jums nebūtu jāņem vērtības no DataReader un jāraksta objektos, pēc tam jāņem vērtības no šiem objektiem un jāizmanto JSON Serializer, lai ģenerētu JSON.
Izmantojiet StringBuilder, lai ģenerētu JSON un atgrieztu StringContent beigās kā atbildes saturu WebAPI.

Vairāk veidu, kā to izdarīt, varat apskatīt Rick Strahl emuārā
3) Cik vien iespējams, izmantojiet citus protokolu formātus (protokola buferis, ziņojumu pakotne)
Ja projektā varat izmantot citus ziņojumu formātus, piemēram, protokola buferus vai ziņojumu pakotnes, nevis JSON.
Jūs iegūsit milzīgu veiktspējas priekšrocību ne tikai tāpēc, ka protokola buferi ir ļoti ātri serializācijā, bet arī tāpēc, ka atgrieztajos rezultātos tie ir formatēti ātrāk nekā JSON.
4) Ieviest saspiešanu
Izmantojiet GZIP vai Deflate savā ASP.NET Web API.
Saspiešana ir vienkāršs un efektīvs veids, kā samazināt atbilžu pakešu lielumu un reaģētspēju.
Šī ir ļoti nepieciešama funkcija, jūs varat apskatīt vairāk rakstu par saspiešanu manā emuārā ASP.NET Web API GZip saspiešana ActionFilter ar 8 koda rindām.
5) Izmantojiet kešatmiņu
Izvades kešatmiņas izmantošana Web API metodē ir pamatīga. Piemēram, ja liels skaits lietotāju piekļūst atbildes saturam, kas mainās tikai vienu reizi dienā.
Ja vēlaties ieviest manuālu kešatmiņu, piemēram, lietotāju paroļu kešatmiņā, skatiet manu emuāra ziņu Vienkāršs veids, kā ieviest kešatmiņu ASP.NET Web API.
6) Kad vien iespējams, izmantojiet tipiskus ADO.NET
Manuāli rakstīta ADO.NET joprojām ir ātrākais veids, kā iegūt vērtības no datu bāzes. Ja jūsu tīmekļa API veiktspēja jums ir patiešām svarīga, neizmantojiet ORM.
Jūs varat redzēt veiktspējas salīdzinājumus starp populārākajiem ORM.
ORMMapper


Dapper un ar roku rakstīts iegūšanas kods ir ātrs, un, protams, visi ORM ir lēnāki par trim.
LLBLGen ar rezultātu kopas kešatmiņu ir ātrs, bet tam ir atkārtoti jāatkārto rezultātu kopa un atkal jāinstancē objekts atmiņā.
7) Ieviesiet asinhronu pieeju tīmekļa API
Izmantojot asinhronu Web API pakalpojumu, ievērojami palielinās HTTP pieprasījumu skaits, ko apstrādā Web API.
Ieviešana ir vienkārša, vienkārši izmantojiet asinhronu atslēgvārdu un mainiet metodes atgrieztās vērtības tipu uz Uzdevums.

8) Atgriež vairākas rezultātu kopas un kopu kombinācijas
Pārsūtīšanas skaita samazināšana ir izdevīga ne tikai vairākām datu bāzēm, bet arī Web API, kas ļauj izmantot rezultātu kopu jaudu.
Tas nozīmē, ka no DataReader varat iegūt vairākas rezultātu kopas, skatiet šo demonstrācijas kodu:

Vienā atbildē no Web API var atgriezt vairākus objektus, mēģināt apvienot atgrieztos objektus un atgriezt šādus objektus:

Tas samazinās HTTP pieprasījumus jūsu WEB API.
Paldies, ka izlasījāt šo rakstu.




Iepriekšējo:SyntaxError: Missing parentheses in call to print
Nākamo:vsftpd, lai pievienotu jaunus lietotājus
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com