Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 15688|Odpověď: 0

[ASP.NET] 8 způsobů, jak zlepšit výkon vašeho ASP.NET Web API

[Kopírovat odkaz]
Zveřejněno 11.01.2016 14:37:43 | | | |
ASP.NET Web API je skvělá technologie. Psaní webových API je tak snadné, že mnoho vývojářů nevěnuje čas strukturování svých aplikací, aby dosáhli dobrého výkonu.
V tomto článku se zaměřím na 8 technik pro zlepšení výkonu ASP.NET webových API.
1) Použijte nejrychlejší nástroj JSON serializace
Serializace JSON má zásadní dopad na výkon celého ASP.NET Web API. V jednom z mých projektů jsem přešel z JSON.NET serializéru na ServiceStack.Text na rok a půl.
Změřil jsem, že výkon webového API se zlepšil asi o 20 %. Důrazně doporučuji vyzkoušet tento nástroj pro serializaci. Zde jsou nedávná srovnávací data o výkonu populárních nástrojů pro serializaci.
SerializerPerformanceGraf
Zdroj: theburningmonk
Aktualizace: Zdá se, že StackOverflow používá Jil, jejich dosud tvrdě deklarovaný nástroj pro serializaci JSON. Testovací data lze najít na jejich stránce Jil serializer na GitHubu.
2) Ruční serializace JSON z DataReaderu
Tento přístup jsem používal ve svých projektech a získal jsem benefity v porovnání.
JSON řetězce můžete ručně vytvářet z DataReaderu a vyhnout se zbytečné tvorbě objektů, takže nemusíte brát hodnoty z DataReaderu a zapisovat do objektů, pak z nich brát hodnoty a používat JSON Serializer k generování JSON.
Použijte StringBuilder k generování JSON a na konci vraťte StringContent jako obsah odpovědi ve WebAPI.

Další způsoby, jak to udělat, najdete na blogu Ricka Strahla
3) Používejte co nejvíce jiné formáty protokolů (protokolový buffer, balíček zpráv)
Pokud můžete ve svém projektu použít jiné formáty zpráv, například Protocol Buffers nebo MessagePacks, místo JSON.
Získáte obrovskou výkonnostní výhodu, nejen proto, že Protocol Buffery jsou velmi rychlé v serializaci, ale také proto, že jsou ve vrácených výsledcích formátovány rychleji než JSON.
4) Implementace komprese
Použijte GZIP nebo Deflate ve svém ASP.NET Web API.
Komprese je jednoduchý a účinný způsob, jak snížit velikost a odezvu paketů odezvy.
Je to velmi důležitá funkce, více článků o kompresi si můžete přečíst na mém blogu ASP.NET Web API GZip kompresi ActionFilter s 8 řádky kódu.
5) Použití cache
Použití výstupního cacheování v metodě Web API je zásadní. Například pokud velké množství uživatelů přistupuje k obsahu odpovědí, mění se to pouze jednou denně.
Pokud chcete implementovat manuální cachování, například ukládání uživatelských hesel do paměti, podívejte se na můj blogový příspěvek Jednoduchý způsob, jak implementovat cachování v ASP.NET Web API.
6) Používejte běžné ADO.NET kdykoli je to možné
Ručně psané ADO.NET je stále nejrychlejší způsob, jak získat hodnoty z databáze. Pokud je pro vás výkon webových API opravdu důležitý, pak ORM nepoužívajte.
Můžete vidět srovnání výkonu mezi nejpopulárnějšími ORM.
ORMMapper


Elegantní a ručně psaný fetch kód jsou rychlé a skutečně, všechny ORM jsou pomalejší než ty tři.
LLBLGen s cache resultsetu je rychlý, ale musí resultset znovu projít a objekt znovu instancovat v paměti.
7) Implementovat asynchronní přístup ve Web API
Použití asynchronní webové API služby dramaticky zvyšuje počet HTTP požadavků, které webové API zpracovávají.
Implementace je jednoduchá, stačí použít asynchronní klíčové slovo a změnit typ návratové hodnoty metody na Task.

8) Vrací více sad výsledků a jejich kombinace
Snížení počtu přenosů je výhodné nejen pro více databází, ale také pro webová API, která vám umožňují využít sílu výsledků.
To znamená, že z DataReaderu můžete extrahovat více sad výsledků, viz následující demo kód:

Můžete vrátit více objektů v jedné odpovědi z webového API, zkuste zkombinovat vrácené objekty a vrátit následující objekty:

To sníží HTTP požadavky na vaše WEB API.
Děkuji, že jste si přečetli tento článek.




Předchozí:SyntaxError: Missing parentheses in call to print
Další:VSFTPD přidává nové uživatele
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com