Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 15688|Atsakyti: 0

[ASP.NET] 8 būdai, kaip pagerinti "ASP.NET Web API" našumą

[Kopijuoti nuorodą]
Paskelbta 2016-01-11 14:37:43 | | | |
ASP.NET žiniatinklio API yra puiki technologija. Žiniatinklio API rašymas yra toks paprastas, kad daugelis kūrėjų negaišta laiko struktūrizuodami savo programas, kad pasiektų gerą vykdymo našumą.
Šiame straipsnyje apžvelgsiu 8 būdus, kaip pagerinti ASP.NET žiniatinklio API našumą.
1) Naudokite greičiausią JSON serializavimo įrankį
JSON serializavimas turi lemiamą poveikį visos ASP.NET žiniatinklio API veikimui. Viename iš savo projektų pusantrų metų perėjau iš JSON.NET serializatoriaus į ServiceStack.Text.
Aš išskaičiavau, kad žiniatinklio API našumas pagerėjo apie 20%. Labai rekomenduoju išbandyti šį serializavimo įrankį. Štai keletas naujausių populiarių serializavimo įrankių našumo palyginimo duomenų.
SerializatoriusPerformanceGraf
Šaltinis: theburningmonk
Atnaujinimas: Atrodo, kad StackOverflow naudoja Jil, jų teigiamas JSON serializavimo įrankis iki šiol. Bandymo duomenis galima rasti jų GitHub puslapyje Jil serializer.
2) Rankiniu būdu serijizuokite JSON iš DataReader
Aš naudojau šį metodą savo projektuose ir gavau naudos iš rezultatų.
Galite rankiniu būdu kurti JSON eilutes iš DataReader ir išvengti nereikalingo objektų kūrimo, kad jums nereikėtų imti reikšmių iš DataReader ir rašyti į objektus, tada paimti reikšmes iš tų objektų ir naudoti JSON Serializer JSON generuoti.
Naudokite "StringBuilder", kad sugeneruotumėte JSON ir grąžintumėte "StringContent" pabaigoje kaip atsakymo turinį žiniatinklio API.

Galite patikrinti daugiau būdų, kaip tai padaryti, Rick Strahl dienoraštyje
3) Kiek įmanoma naudokite kitus protokolo formatus (protokolo buferį, pranešimų paketą)
Jei galite naudoti kitus pranešimų formatus savo projekte, pvz., Protocol Buffers arba MessagePacks, o ne naudoti JSON.
Gausite didžiulį našumo pranašumą ne tik todėl, kad protokolo buferiai yra labai greiti serializuojant, bet ir todėl, kad jie yra suformatuoti greičiau nei JSON grąžintuose rezultatuose.
4) Įgyvendinkite glaudinimą
Naudokite GZIP arba Deflate savo ASP.NET žiniatinklio API.
Suspaudimas yra paprastas ir efektyvus būdas sumažinti atsakymų paketų dydį ir reagavimą.
Tai labai reikalinga funkcija, galite peržiūrėti daugiau straipsnių apie glaudinimą mano tinklaraštyje ASP.NET Web API GZip glaudinimas ActionFilter su 8 kodo eilutėmis.
5) Naudokite talpyklą
Išvesties talpyklos naudojimas žiniatinklio API metode yra labai svarbus. Pavyzdžiui, jei daug vartotojų pasiekia atsakymo turinį, kuris keičiasi tik kartą per dieną.
Jei norite įdiegti rankinį talpyklą, pvz., vartotojo slaptažodžių talpyklą į atmintį, žiūrėkite mano tinklaraščio įrašą Paprastas būdas įdiegti talpyklą ASP.NET žiniatinklio API.
6) Jei įmanoma, naudokite tipines ADO.NET
Rankiniu būdu parašyta ADO.NET vis dar yra greičiausias būdas gauti reikšmes iš duomenų bazės. Jei žiniatinklio API našumas jums tikrai svarbus, nenaudokite ORM.
Galite pamatyti populiariausių ORM našumo palyginimus.
ORMMapper


Dapper ir ranka parašytas gavimo kodas yra greitas, ir tikrai pakankamai, visi ORM yra lėtesni nei trys.
LLBLGen su rezultatų rinkinio talpykla yra greita, tačiau ji turi iš naujo pakartoti rezultatų rinkinį ir vėl įterpti objektą į atmintį.
7) Įdiekite asinchroninį požiūrį į žiniatinklio API
Naudojant asinchroninę žiniatinklio API paslaugą, žymiai padidėja HTTP užklausų, kurias apdoroja žiniatinklio API, skaičius.
Įgyvendinimas yra paprastas, tiesiog naudokite asinchroninį raktažodį ir pakeiskite grąžinamos vertės tipą savo metodą į Užduotis.

8) Pateikia kelis rezultatų rinkinius ir rinkinių derinius
Perkėlimų skaičiaus sumažinimas yra naudingas ne tik kelioms duomenų bazėms, bet ir žiniatinklio API, o tai leidžia išnaudoti rezultatų rinkinių galią.
Tai reiškia, kad galite išgauti kelis rezultatų rinkinius iš DataReader, žiūrėkite šį demonstracinį kodą:

Galite grąžinti kelis objektus vienu atsakymu iš žiniatinklio API, pabandyti sujungti grąžintus objektus ir grąžinti šiuos objektus:

Tai sumažins HTTP užklausų skaičių jūsų WEB API.
Dėkojame, kad perskaitėte šį straipsnį.




Ankstesnis:SyntaxError: Missing parentheses in call to print
Kitą:vsftpd pridėti naujų vartotojų
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com