Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 15688|Odpoveď: 0

[ASP.NET] 8 spôsobov, ako zlepšiť výkon vášho ASP.NET Web API

[Kopírovať odkaz]
Zverejnené 11. 1. 2016 14:37:43 | | | |
ASP.NET Web API je skvelá technológia. Písanie webových API je také jednoduché, že mnohí vývojári nevenujú čas štruktúrovaniu svojich aplikácií, aby dosiahli dobrý výkon.
V tomto článku sa budem venovať 8 technikám na zlepšenie výkonu ASP.NET webových API.
1) Použiť najrýchlejší JSON nástroj na serializáciu
Serializácia JSON má zásadný vplyv na výkon celého ASP.NET Web API. V jednom z mojich projektov som prešiel z JSON.NET serializéru na ServiceStack.Text na rok a pol.
Zmeral som, že výkon webového API sa zlepšil približne o 20 %. Veľmi odporúčam vyskúšať tento nástroj na serializáciu. Tu sú niektoré nedávne porovnávacie údaje o výkone populárnych nástrojov na serializáciu.
SerializerPerformanceGraf
Zdroj: theburningmonk
Aktualizácia: Zdá sa, že StackOverflow používa Jil, ich doteraz tvrdený nástroj na serializáciu JSON. Testovacie údaje nájdete na ich GitHub stránke Jil serializer.
2) Manuálne serializovať JSON z DataReader
Tento prístup som používal vo svojich projektoch a dosiahol som výhody v oblasti výkonu.
JSON reťazce môžete manuálne vytvárať z DataReaderu a vyhnúť sa zbytočnému vytváraniu objektov, takže nemusíte brať hodnoty z DataReaderu a zapisovať do objektov, potom z nich brať hodnoty a používať JSON Serializer na generovanie JSON.
Použite StringBuilder na generovanie JSON a na konci vráťte StringContent ako obsah odpovede vo WebAPI.

Viac spôsobov, ako to urobiť, si môžete pozrieť na blogu Ricka Strahla
3) Používať iné protokolové formáty (protokolový buffer, balík správ) čo najviac
Ak môžeš použiť iné formáty správ vo svojom projekte, ako sú Protocol Buffers alebo MessagePacks, namiesto JSON.
Získate obrovskú výkonnostnú výhodu, nielen preto, že protokolové buffery sú veľmi rýchle pri serializácii, ale aj preto, že sú vo vrátených výsledkoch formátované rýchlejšie ako JSON.
4) Implementovať kompresiu
Použite GZIP alebo Deflate vo vašom ASP.NET Web API.
Kompresia je jednoduchý a efektívny spôsob, ako znížiť veľkosť a odozvy paketov odpovede.
Toto je veľmi potrebná funkcia, viac článkov o kompresii si môžete pozrieť na mojom blogu ASP.NET Web API, GZip kompresii ActionFilter s 8 riadkami kódu.
5) Použitie cache
Použitie výstupného cacheovania v metóde Web API je zásadné. Napríklad, ak veľké množstvo používateľov pristupuje k obsahu odpovedí, mení sa to len raz denne.
Ak chcete implementovať manuálne cachovanie, napríklad ukladanie používateľských hesiel do pamäte, pozrite si môj blogový príspevok Jednoduchý spôsob, ako implementovať caching v ASP.NET Web API.
6) Používajte bežné ADO.NET vždy, keď je to možné
Manuálne písanie ADO.NET je stále najrýchlejší spôsob, ako získať hodnoty z databázy. Ak je pre vás výkon vašich webových API naozaj dôležitý, ORM nepoužívajte.
Môžete vidieť porovnania výkonu medzi najpopulárnejšími ORM.
ORMMapper


Elegantný a ručne písaný fetch kód sú rýchle a naozaj, všetky ORM sú pomalšie ako tie tri.
LLBLGen s vyrovnávacou pamäťou resultsetu je rýchly, ale musí resultset znovu iterovať a objekt znova inštancovať v pamäti.
7) Implementovať asynchrónny prístup vo webovom API
Použitie asynchrónnej webovej API služby dramaticky zvyšuje počet HTTP požiadaviek, ktoré webové API spracovávajú.
Implementácia je jednoduchá, stačí použiť asynchrónne kľúčové slovo a zmeniť typ návratovej hodnoty vašej metódy na Task.

8) Vráti viacero výsledkov a kombinácie množín
Zníženie počtu prenosov je prospešné nielen pre viaceré databázy, ale aj pre webové API, ktoré vám umožňujú využiť silu výsledkov.
To znamená, že z DataReaderu môžete extrahovať viacero výsledkov, pozrite si nasledujúci demo kód:

Môžete vrátiť viacero objektov v jednej odpovedi z webového API, skúste spojiť vrátené objekty a vráťte nasledujúce objekty:

Tým sa znížia HTTP požiadavky na vaše WEB API.
Ďakujem, že ste si prečítali tento článok.




Predchádzajúci:SyntaxError: Missing parentheses in call to print
Budúci:VSFTPD pridáva nových používateľov
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com