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.
|