See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 15688|Vastuse: 0

[ASP.NET] 8 viisi, kuidas parandada oma ASP.NET Web API jõudlust

[Kopeeri link]
Postitatud 11.01.2016 14:37:43 | | | |
ASP.NET Web API on suurepärane tehnoloogia. Veebipõhiste API-de kirjutamine on nii lihtne, et paljud arendajad ei kuluta aega oma rakenduste struktureerimisele, et saavutada hea täitmisjõudlus.
Selles artiklis käsitlen 8 tehnikat ASP.NET veebipõhiste API-de jõudluse parandamiseks.
1) Kasuta kiireimat JSON-i serialiseerimise tööriista
JSONi serialiseerimisel on kriitiline mõju kogu ASP.NET Web API jõudlusele. Ühes oma projektis vahetasin JSON.NET serialiseerija ServiceStack.Text vastu poolteist aastat.
Olen mõõtnud, et veebipõhise API jõudlus on paranenud umbes 20%. Soovitan tungivalt proovida seda serialiseerimistööriista. Siin on mõned hiljutised võrdlusandmed populaarsete serialiseerimistööriistade jõudluse kohta.
SerializerPerformanceGraf
Allikas: theburningmunk
Uuendus: Tundub, et StackOverflow kasutab Jil-i, mis on nende seni väidetav JSON-i serialiseerimise tööriist. Testandmed on leitavad nende GitHubi lehelt Jil serializer.
2) JSON-i käsitsi seriaaliseerimine DataReaderist
Olen seda lähenemist oma projektides kasutanud ja saanud tulemuslikkuse eeliseid.
Saad käsitsi luua JSON-stringe DataReaderist ja vältida tarbetut objektide loomist, nii et ei pea DataReaderist väärtusi võtma ja objektidele kirjutama, seejärel võtma väärtusi neist objektidest ja kasutama JSON Serializerit JSON-i genereerimiseks.
Kasuta StringBuilderit, et genereerida JSON ja tagastada StringContent vastuse sisuna WebAPI-s.

Rohkem võimalusi selleks saad vaadata Rick Strahli blogist
3) Kasuta võimalikult palju teisi protokolliformaate (protokollipuhver, sõnumipakk)
Kui saad oma projektis kasutada teisi sõnumiformaate, nagu protokollipuhvrid või sõnumipakid, selle asemel et kasutada JSON-i.
Saad suure jõudluse eelise, mitte ainult seetõttu, et protokollipuhvrid on seriaaliseerimisel väga kiired, vaid ka seetõttu, et need vormindatakse tulemustes kiiremini kui JSON.
4) Rakenda kompressioon
Kasuta oma ASP.NET veebi API-s GZIP-i või Deflate'i.
Tihendamine on lihtne ja tõhus viis vähendada vastuspakettide suurust ja reageerimisvõimet.
See on väga vajalik funktsioon, minu blogis saad lugeda rohkem artikleid tihendamise kohta ASP.NET Web API GZip kompressioon ActionFilter, kus on 8 koodirida.
5) Kasuta vahemällu salvestamist
Väljundvahemällu salvestamise kasutamine Web API meetodis on väga oluline. Näiteks, kui suur hulk kasutajaid pääseb vastuse sisule, mis muutub vaid kord päevas.
Kui soovid käsitsi vahemällu salvestada, näiteks kasutajaparoolide mällu salvestamist, vaata minu blogipostitust "Lihtne viis vahemällu salvestamiseks veebipõhises API-s ASP.NET.
6) Kasuta võimalusel tüüpilisi ADO.NET
Käsitsi kirjutatud ADO.NET on endiselt kiireim viis andmebaasist väärtuste saamiseks. Kui sinu veebipõhiste API-de jõudlus on sulle tõesti oluline, siis ära kasuta ORM-e.
Saad näha jõudlusvõrdlusi kõige populaarsemate ORM-ide vahel.
ORMMapper


Dapper ja käsitsi kirjutatud toomiskood on kiired ning tõepoolest, kõik ORM-id on aeglasemad kui need kolm.
LLBLGen, millel on tulemuste vahemälu, on kiire, kuid see peab tulemuskomplekti uuesti kordama ja objekti mälus uuesti instantsima.
7) Rakendada asünkroonne lähenemine veebi API-s
Asünkroonse veebipõhise API teenuse kasutamine suurendab oluliselt HTTP-päringute arvu, mida veebipõhised API-d töötlevad.
Rakendus on lihtne, kasuta asünkroonset märksõna ja muuda oma meetodi tagastusväärtuse tüüp Taskiks.

8) Tagastab mitu tulemuste hulka ja hulkade kombinatsioone
Edastuste arvu vähendamine on kasulik mitte ainult mitmele andmebaasile, vaid ka veebipõhistele API-dele, mis võimaldab kasutada tulemuste kogumite jõudu.
See tähendab, et saad DataReaderist välja võtta mitu tulemuste komplekti, vaata järgmist demokoodi:

Saad veebi API-st ühe vastusega tagastada mitu objekti, proovi kombineerida tagastatud objektid ja tagastada järgmised objektid:

See vähendab HTTP päringuid sinu WEB API-le.
Aitäh, et lugesite seda artiklit.




Eelmine:SyntaxError: Missing parentheses in call to print
Järgmine:VSFTPD uute kasutajate lisamiseks
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com