Sdílet prostřednictvím


Doporučení pro optimalizaci kódu a infrastruktury

Platí pro toto doporučení kontrolního seznamu efektivity výkonu azure Well-Architected Framework:

PE:07 Optimalizujte kód a infrastrukturu. Používejte výkonný kód a zajistěte, aby se odpovědnost převela na platformu. Kód a infrastrukturu používejte pouze pro jejich základní účel a pouze v případě potřeby.

Tato příručka popisuje doporučení pro optimalizaci výkonu kódu a infrastruktury. Pokud chcete optimalizovat kód a infrastrukturu, měli byste komponenty používat pouze pro jejich základní účely a pouze v případě potřeby. Když nadužíváte kód a infrastrukturu, dochází ke zbytečné spotřebě prostředků, kritickým bodům a pomalým reakcím. Pokud chcete tyto neefektivnosti kompenzovat, musíte přidat další zdroje, abyste mohli provádět stejné úkoly.

Definice

Období Definice
Souběžnost Když se provádí více úloh nebo procesů najednou, ale nemusí to být nutně přesně ve stejnou dobu.
Architektura procesoru Součásti a principy, které ovlivňují fungování počítače.
Komprese dat Akce zmenšení velikosti souborů minimalizací redundantních dat
Halda Oblast v paměti používaná pro přidělení paměti za běhu.
Nevrácená paměť Když se úloze nepodaří uvolnit přidělenou paměť poté, co už paměť není potřeba.
Paralelnost Pokud se současně provádí více úloh nebo procesů.

Klíčové strategie návrhu

Optimalizace kódu a infrastruktury zahrnuje doladění kódu a podpůrné infrastruktury za účelem zvýšení efektivity výkonu. Vyžaduje výkonný kód, který rychle provádí úlohy a neplýtvá prostředky. Vyžaduje dobře navrženou infrastrukturu, která je zjednodušená, aby se zabránilo zbytečné složitosti. Úloha by měla využívat základní funkce platformy. Jedná se o přístup, který pomáhá zajistit, aby se kód i infrastruktura používaly primárně pro jejich základní účely a pouze v případě potřeby.

Optimalizace výkonu kódu

Pokud chcete optimalizovat výkon kódu, upravte kód tak, abyste snížili využití prostředků, minimalizovali modul runtime a zvýšili výkon. Úpravou kódu můžete zvýšit efektivitu a rychlost softwarového programu. Nemaskujte problémy s výkonem hrubou silou. Hrubá síla znamená přidání výpočetních prostředků ke kompenzaci výkonu kódu, například přidání další kapacity místo adresování zdroje. Je potřeba vyřešit problémy s výkonem při optimalizaci. Když optimalizujete výkon kódu, pomáhá maximalizovat využití systémových prostředků, zlepšuje dobu odezvy, snižuje latenci a zlepšuje uživatelské prostředí.

Instrumentace kódu

Instrumentace kódu odkazuje na postup přidávání fragmentů kódu nebo knihoven do kódu, které shromažďují data a monitorují výkon kódu za běhu. Instrumentace kódu umožňuje vývojářům shromažďovat informace o klíčových metrikách, jako je spotřeba prostředků (využití procesoru, paměť) a doba provádění. Díky instrumentaci kódu můžou vývojáři získat přehled o horkých cestách kódu, identifikovat kritické body výkonu a optimalizovat kód pro lepší efektivitu výkonu.

V ideálním prostředí byste měli provádět analýzu kódu na začátku životního cyklu vývoje softwaru. Tím dříve problém s kódem zachytíte, tím levnější je ho opravit. Chcete automatizovat co nejvíce této analýzy kódu. Použití nástrojů pro analýzu dynamického a statického kódu ke snížení ručního úsilí Mějte však na paměti, že toto testování je stále simulací produkce. Produkční prostředí poskytuje nejjasnější porozumění optimalizaci kódu.

Kompromis: Nástroje pro monitorování kódu pravděpodobně zvýší náklady.

Identifikace horkých cest

Instrumentací kódu můžete měřit spotřebu prostředků pro různé cesty kódu. Tato měření vám pomůžou identifikovat horké cesty. Horké cesty mají významný vliv na výkon a využití prostředků. Jsou to kritické nebo často spouštěné oddíly programu, které vyžadují vysoký výkon a nízkou latenci. Pokud chcete identifikovat horké cesty kódu, zvažte tyto kroky:

  • Analýza dat modulu runtime: Shromážděte data modulu runtime a analyzujte je, abyste identifikovali oblasti kódu, které spotřebovávají významné prostředky, jako jsou procesor, paměť nebo vstupně-výstupní operace. Hledejte vzory nebo části kódu, které se často spouštějí nebo jejich dokončení trvá dlouho.

  • Měření výkonu: Pomocí nástrojů pro profilaci nebo rozhraní pro testování výkonu můžete měřit dobu provádění a spotřebu prostředků různých cest kódu. Pomáhá identifikovat kritické body a oblasti pro zlepšení.

  • Zvažte obchodní logiku a vliv uživatele: Vyhodnoťte důležitost různých cest kódu na základě jejich relevance pro funkčnost aplikace nebo důležité obchodní operace. Určete, které cesty kódu jsou zásadní pro poskytování hodnoty uživatelům nebo splnění požadavků na výkon.

Optimalizace logiky kódu

Optimalizace logiky kódu spočívá ve zpřesnění struktury a návrhu kódu pro provádění úloh s menším počtem prostředků. Vylepšená logika snižuje zbytečné operace. To vytváří rychlejší provádění s nižší spotřebou prostředků. V cestě ke kódu byste měli odebrat všechny nepotřebné operace, které by mohly ovlivnit výkon. Určete prioritu optimalizace horkých cest, abyste viděli největší zvýšení efektivity výkonu. Pokud chcete optimalizovat logiku kódu, zvažte následující strategie:

  • Odebrání nepotřebných volání funkcí: Zkontrolujte kód a identifikujte všechny funkce, které nejsou nezbytné pro požadovanou funkci a můžou negativně ovlivnit výkon. Pokud například volání funkce provede ověření dokončené dříve v kódu, můžete nepotřebné volání ověřovací funkce odebrat.

  • Minimalizace operací protokolování: Protokolování může být užitečné pro ladění a analýzu, ale nadměrné protokolování může ovlivnit výkon. Vyhodnoťte nutnost každé operace protokolování a odeberte všechna nepotřebná volání protokolování, která nejsou pro analýzu výkonu důležitá.

  • Optimalizace smyček a podmíněných podmínek: Analyzujte smyčky a podmínky v kódu a identifikujte všechny zbytečné iterace nebo podmínky, které je možné eliminovat. Zjednodušení a optimalizace těchto struktur může zlepšit výkon kódu. Minimalizujte volání funkcí ve smyčce a eliminujte redundantní výpočty. Zvažte přesunutí výpočtů mimo smyčku nebo použití zrušení registrace smyčky.

  • Omezení zbytečného zpracování dat: Zkontrolujte, jestli kód nedochází ke zbytečným operacím zpracování dat, jako jsou redundantní výpočty nebo transformace. Eliminujte tyto zbytečné operace, abyste zlepšili efektivitu kódu.

  • Optimalizujte datové struktury. Pokud chcete data efektivně ukládat a načítat, vyberte vhodné datové struktury, jako jsou pole, propojené seznamy, stromy a hashovací tabulky. Zvolte nejlepší datovou strukturu pro konkrétní problém. Vhodná datová struktura zlepšuje výkon aplikace.

  • Minimalizace síťových požadavků: Pokud váš kód zahrnuje vytváření síťových požadavků, minimalizujte počet požadavků a optimalizujte jejich využití. Pokud je to možné, vyžaduje batch a vyhněte se zbytečným opakováním, aby se zlepšil výkon.

  • Minimalizace přidělení: Identifikujte oblasti, ve kterých dochází k nadměrnému přidělení paměti. Optimalizujte kód omezením zbytečných přidělení a opětovným použitím existujících prostředků, pokud je to možné. Minimalizací přidělení můžete zlepšit efektivitu paměti a celkový výkon. Použijte vhodné strategie správy paměti a uvolňování paměti pro váš programovací jazyk.

  • Zmenšete velikost datové struktury: Vyhodnoťte velikost datových struktur, jako jsou třídy, a identifikujte oblasti, kde je možné zmenšení. Zkontrolujte požadavky na data a eliminujte všechna nepotřebná pole nebo vlastnosti. Optimalizujte využití paměti výběrem vhodných datových typů a efektivním zabalením dat.

  • Používejte sady SDK a knihovny optimalizované pro výkon. Používejte nativní sady SDK nebo knihovny optimalizované pro výkon. Nativní sady SDK jsou navržené tak, aby interagovaly se službami a prostředky na platformě nebo v rámci architektury. Například nativní sady SDK pro cloud fungují lépe s rovinami dat cloudové služby než s vlastním přístupem k rozhraní API. Sady SDK excelují ve zpracování síťových požadavků a optimalizaci interakcí. Knihovny optimalizované pro výkon, například Math.NET, obsahují funkce optimalizované pro výkon. Když funkce použijete správně, můžete zvýšit výkon úloh.

  • Průřezová implementace: Zvažte účinky průřezových implementací, jako jsou kontroly middlewaru nebo tokenů, a vyhodnoťte, jestli mají negativní vliv na výkon.

Projděte si doporučení k výkonu specifická pro programovací jazyk, se kterým pracujete. Vyhodnoťte kód na základě těchto doporučení a identifikujte oblasti pro zlepšení.

Kompromisy:

  • Optimalizace kódu a horkých cest vyžaduje zkušenosti vývojářů s identifikací neefektivností kódu je subjektivní a může se jednat o vysoce kvalifikovanou osobu vyžadovanou pro jiné úlohy.
  • Sady SDK poskytují pohodlí a eliminují složitost interakce s rozhraními API. Sady SDK ale můžou omezit možnosti řízení a přizpůsobení vlastního kódu.

Optimalizace správy paměti

Optimalizace správy paměti zahrnuje zpřesnění způsobu, jakým úloha využívá, přiděluje a uvolňuje paměťové prostředky, aby se zlepšila efektivita. Správná správa paměti zlepšuje výkon kódu, protože snižuje režii operací paměti. Efektivní využití paměti snižuje latenci, zabraňuje zpomalení nebo chybovému ukončení systému a maximalizuje propustnost výpočetních úloh. Zvažte následující strategie optimalizace správy paměti.

Ladění problémů s pamětí Výpisy paměti jsou snímky paměti aplikace. Zaznamenávají stav paměti aplikace v určitém okamžiku. Výpisy paměti umožňují retrospektivní analýzu problémů souvisejících s pamětí. Vyberte odpovídající typ výpisu paměti na základě povahy problému, který se pokoušíte diagnostikovat, a dostupných prostředků. Miniaturní výpisy paměti byste měli použít pro rutinní ladění a úplné výpisy paměti pro složité a kritické problémy. Tato strategie poskytuje rovnováhu mezi využitím prostředků a diagnostickými možnostmi. Ladění paměti podporuje řada služeb pro hostování kódu. Měli byste dát přednost službám, které podporují analýzu paměti, před službami, které ne. Tady jsou základní kroky pro ladění problémů s pamětí:

  1. Zachytávání výpisů paměti: Začněte nastavením mechanismu pro zachytávání výpisů paměti během běhu vaší aplikace. Zachytávání se může aktivovat ručně, automaticky nebo při splnění určitých podmínek (jako je nadměrné využití paměti). Některé cloudové služby už můžou tento proces nabízet.

  2. Analýza výpisů paměti: Po shromáždění výpisů paměti je analyzujte. Při kontrole těchto výpisů paměti vám může pomoct řada nástrojů, například WinDbg pro aplikace windows nebo GDB pro unixové systémy.

  3. Identifikace nevracení paměti: Během analýzy se zaměřte na identifikaci nevracení paměti. K nevracení paměti dochází, když aplikace přidělí paměť, ale nepodaří se ji uvolnit, když už paměť není potřeba. Vyhledejte objekty nebo datové struktury, které zůstanou v paměti, i když by měly být uvolněny.

  4. Oprava a testování: Po identifikaci problematického kódu se soustřeďte na řešení problémů s pamětí. Řešení můžou zahrnovat správné uvolnění paměti, optimalizaci datových struktur nebo opětovné hodnocení postupů správy paměti. Ověřte, že vaše řešení procházejí přísným testováním, aby se zajistila jejich účinnost.

  5. Iterace a monitorování: Správa paměti je nepřetržitý proces. Pravidelně monitorujte využití paměti vaší aplikace a zachovejte shromažďování výpisů paměti v produkčním prostředí. Pravidelně se vracet k fázím analýzy a optimalizace, abyste se ujistili, že se problémy s pamětí neobjevují znovu s následnými úpravami kódu.

Začleněním analýzy výpisu paměti do životního cyklu vývoje softwaru můžete zvýšit spolehlivost a efektivitu vašich aplikací. Pomáhá snížit pravděpodobnost problémů souvisejících s pamětí v produkčním prostředí.

Omezte přidělení paměti. Minimalizujte přidělení paměti, abyste snížili celkovou paměťovou náročnost kódu. Vaše úloha může efektivně využívat dostupnou paměť. Je méně potřeba, aby systém uvolňování paměti získal zpět nevyužitou paměť, a tím se snižuje frekvence a doba trvání cyklů uvolňování paměti. Přidělení paměti může být nákladné, zejména pokud je provádíte často. Minimalizujte přidělení paměti, aby mohl kód běžet rychle a efektivně.

Mezipaměti ukládají často přístupná data v blízkosti procesoru, což zvyšuje výkon. Když minimalizujete přidělení paměti, dojde k menším kolizím o místo v mezipaměti, takže mezipaměť můžete efektivně využívat. Velký počet přidělení paměti může snížit výkon aplikace a generovat chyby. Mezi další způsoby minimalizace přidělení paměti patří:

  • Místní proměnné: Pokud chcete minimalizovat spotřebu paměti, používejte místo globálních proměnných místní proměnné.

  • Opožděná inicializace: Implementujte opožděnou inicializaci, která odloží vytváření objektů nebo prostředků, dokud nebudou potřeba.

  • Vyrovnávací paměti: Efektivně spravujte vyrovnávací paměti, abyste se vyhnuli přidělování velkých vyrovnávacích pamětí.

  • Sdružování objektů: Zvažte sdružování objektů, abyste mohli znovu používat velké objekty místo jejich přidělování a rušení jejich přidělení.

Další informace najdete v tématech Omezení přidělení paměti a Halda velkých objektů v systémech Windows.

Použití souběžnosti a paralelismu

Použití souběžnosti a paralelismu zahrnuje provádění více úloh nebo procesů současně nebo překrývajícím se způsobem, aby se efektivně využívaly výpočetní prostředky. Tyto techniky zvyšují celkovou propustnost a počet úloh, které může úloha zpracovat. Když úlohy spouštíte souběžně nebo paralelně, snižuje se běh aplikace, snižuje latence a prodlužuje se doba odezvy. Souběžnost a paralelismus umožňují efektivní využití výpočetních prostředků, jako jsou jádra procesoru nebo distribuované systémy. Souběžnost a paralelismus efektivně rozdělují úlohy mezi výpočetní prostředky.

Použijte paralelismus. Paralelismus je schopnost systému současně aktivovat více úloh nebo procesů na více výpočetních prostředcích. Paralelismus rozděluje úlohy na menší úlohy, které běží paralelně. Paralelismu můžete dosáhnout pomocí technik, jako je multiprocesing nebo distribuované výpočty. Distribuujte úlohy mezi vícejádrové procesory za účelem optimalizace správy úloh. Optimalizujte kód tak, aby využíval architekturu procesoru, modely threadingu a vícejádrové procesory. Když spouštíte kód paralelně, výkon se zvýší, protože úloha se distribuuje mezi několik jader.

Použijte souběžnost. Souběžnost je schopnost systému spouštět více úloh nebo procesů. Souběžnost umožňuje různým částem programu nezávisle provádět pokrok, což může zlepšit celkový výkon. Souběžnost můžete implementovat pomocí technik, jako je multithreading, ve kterém v jednom procesu běží více vláken současně. Můžete také použít asynchronní programování, ve kterém se úlohy aktivují souběžně.

  • Asynchronní programování: Asynchronní programování je přístup ke spouštění úloh bez blokování hlavního vlákna. Asynchronní programování umožňuje programu aktivovat úlohy při čekání na dokončení dlouhotrvajících operací. Při asynchronním programování může program zahájit více úloh a čekat, až se dokončí asynchronně. Program nemusí čekat na dokončení každého úkolu, než přejde na další úkol.

    V závislosti na programovacím jazyce a platformě existuje mnoho asynchronních programovacích technik a vzorů. Jedním z běžných přístupů je použití asynchronních klíčových slov a konstruktorů, jako async je a await, v jazycích, jako je C#. Pomocí těchto klíčových slov můžete definovat asynchronní metody. U provozu HTTP zvažte použití asynchronního Request-Reply vzoru.

    Mnoho architektur a knihoven poskytuje integrovanou podporu asynchronního programování. Například v platformě .NET můžete implementovat asynchronní operace pomocí vzorů, jako je asynchronní model založený na úlohách a asynchronní model založený na událostech. Konkrétní implementace asynchronního programování se liší v závislosti na programovacím jazyce, platformě a požadavcích aplikace.

  • Fronty: Fronta je vyrovnávací paměť úložiště umístěná mezi žádající komponentou (producentem) a komponentou zpracování (příjemcem) úlohy. Jedna fronta může obsahovat více příjemců. S rostoucím nárůstem úkolů byste měli škálovat uživatele tak, aby splňovaly poptávku. Producent umístí úkoly do fronty. Fronta ukládá úkoly, dokud příjemce nemá kapacitu. Fronta je často nejlepším způsobem, jak předat práci službě zpracování, která má špičky v poptávce. Další informace najdete v tématech Model vyrovnávání zatížení na základě front a Fronty služby Storage a Fronty služby Service Bus.

Použití sdružování připojení

Sdružování připojení je postup opakovaného použití vytvořeného databázová připojení místo vytváření nového připojení pro každý požadavek. Navázání připojení k databázi může být nákladné. Musíte vytvořit ověřené síťové připojení ke vzdálenému databázovému serveru. Připojení k databázi jsou obzvláště náročná pro aplikace, které často otevírají nová připojení. Sdružování připojení znovu používá existující připojení a eliminuje náklady na otevření nového připojení pro každou žádost. Sdružování připojení snižuje latenci připojení a umožňuje vysokou propustnost databáze (transakce za sekundu) na serveru. Měli byste zvolit velikost fondu, která dokáže zpracovat více připojení, než máte aktuálně. Cílem je, aby fond připojení rychle zpracovával nové příchozí požadavky.

Seznamte se s limity sdružování připojení. Některé služby omezují počet síťových připojení. Pokud tento limit překročíte, připojení se můžou zpomalit nebo ukončit. Sdružování připojení můžete použít k vytvoření pevné sady připojení při spuštění a následné údržbě těchto připojení. V mnoha případech se výchozí velikost fondu může skládat jenom z několika připojení, která rychle fungují v základních testovacích scénářích. Vaše aplikace může vyčerpat výchozí velikost fondu v rámci škálování a vytvořit kritický bod. Měli byste vytvořit velikost fondu, která se mapuje na počet souběžných transakcí podporovaných v každé instanci aplikace.

Otestujte fond připojení. Každá databáze a aplikační platforma mají trochu jiné požadavky na nastavení a používání fondu. Otestujte fond připojení a ujistěte se, že při zatížení funguje efektivně.

Riziko: Sdružování připojení může vytvořit fragmentaci fondu a snížit výkon.

Optimalizace úloh na pozadí

Mnoho aplikací vyžaduje úlohy na pozadí, které běží nezávisle na uživatelském rozhraní. Aplikace může úlohu spustit a dál zpracovávat interaktivní požadavky od uživatelů. Mezi příklady úloh na pozadí patří dávkové úlohy, úlohy náročné na procesor a dlouhotrvající procesy, jako jsou pracovní postupy. Úlohy na pozadí by neměly blokovat aplikaci ani způsobovat nekonzistence kvůli zpožděné operaci, když je systém pod zatížením. Pokud chcete zvýšit výkon, můžete škálovat výpočetní instance, které hostují úlohy na pozadí. Další informace najdete v tématu Úlohy na pozadí a Aspekty škálování a výkonu.

Optimalizace výkonu infrastruktury

Optimalizace výkonu infrastruktury znamená vylepšení a úpravu prvků infrastruktury tak, aby byl zajištěn provoz ve špičce a co nejlepší využití prostředků pro úlohu. Vyladěním infrastruktury můžete minimalizovat plýtvání, snížit prodlevy a dosáhnout více s dostupnými prostředky. Zajišťuje spolehlivé a rychlé spouštění úloh, což vede k lepšímu uživatelskému prostředí a úsporám nákladů. Pokud chcete optimalizovat výkon infrastruktury, zvažte následující strategie:

Přidejte limity využití. U některých komponent úloh můžete implementovat omezení využití. Pokud například chcete odebrat nestabilní pody, můžete definovat omezení procesoru a paměti podů v Azure Kubernetes Service (AKS). Pokud chcete optimalizovat výkon, můžete definovat limity paměti ve virtuálních počítačích Java.

Zjednodušte infrastrukturu. Zjednodušte si úlohy, abyste snížili potenciál problémů s interakcemi, závislostmi a kompatibilitou. Když si zjednodušíte úlohy, optimalizujete využití prostředků paměti, výpočetního výkonu a úložiště.

Snižte zatížení. Pokud chcete snížit zatížení úlohy, minimalizujte požadavky na aplikaci a povolte prostředkům provádět jejich primární úkoly. Běžnou praxí je například vyhnout se spouštění řešení zabezpečení v rámci kódu nebo na jednotlivých výpočetních instancích. Místo toho by webové servery měly obsluhovat požadavky HTTP. Brány firewall webových aplikací a prostředky brány můžou zpracovávat kontroly zabezpečení. Následující strategie vám pomůžou snížit zatížení úloh:

  • Konečná konzistence: Přijměte model konečné konzistence, který zvýší výkon tím, že umožní, aby data byla mírně datovaná. Konečná konzistence snižuje okamžitou poptávku po cyklech procesoru a šířce pásma sítě pro neustálé aktualizace dat.

  • Delegování úkolů: Delegujte úlohy serveru klientům nebo zprostředkovatelům, jako jsou indexy vyhledávání a mezipaměti. Delegujte úkoly, jako je řazení dat, filtrování dat nebo vykreslování zobrazení. Když tyto úlohy přeložíte, snížíte zatížení na vašich serverech a zvýšíte výkon.

Optimalizujte síť. Pokud chcete optimalizovat síť úloh z hlediska výkonu, nakonfigurujte a vylaďte síťovou infrastrukturu. Zajistěte, aby úloha fungovala na nejvyšší úrovni efektivity.

  • Síťové protokoly: Upgradujte na moderní protokoly, jako je HTTP/2, které umožňují odesílání více požadavků přes jedno připojení. Moderní protokoly snižují režii při navazování nových připojení.

    Kompromis: Moderní protokoly můžou vyloučit starší klienty.

  • Chatovat v síti: Dávkové síťové požadavky dohromady, aby se snížil počet požadavků. Místo vytváření několika malých požadavků je zkombinujte do větších požadavků, abyste snížili režii sítě.

  • Databázové dotazy: Zajistěte, aby databázové dotazy načítaly jenom potřebné informace. Vyhněte se načítání velkých objemů nepotřebných dat, což může vést ke zvýšení síťového provozu a nízkému výkonu.

  • Statická data: Využijte síť pro doručování obsahu k ukládání často používaného statického obsahu do mezipaměti, který je blízko uživatelů. Když data ukládáte do mezipaměti, nemusí cestovat na dlouhé vzdálenosti. Ukládání do mezipaměti zlepšuje dobu odezvy a snižuje síťový provoz.

  • Shromažďování protokolů: Shromažďujte a uchovávejte pouze data protokolu, která jsou nezbytná pro podporu vašich požadavků. Nakonfigurujte pravidla shromažďování dat a implementujte aspekty návrhu pro optimalizaci nákladů na Log Analytics.

  • Komprese dat: Komprimujte a seskupujte obsah HTTP a data souborů , abyste umožnili rychlý přenos mezi klienty a servery. Komprese zmenší data, která stránka nebo rozhraní API vrací, a odešle zpět do prohlížeče nebo klientské aplikace. Komprese optimalizuje síťový provoz, což může urychlit komunikaci aplikací.

    Kompromis: Komprese přidává zpracování na straně serveru a klienta. Aplikace musí komprimovat, odesílat a dekomprimovat data. Vícesměrová komunikace nebo komunikace s více příjemci může vytvořit režii dekomprese. Před implementací a po implementaci komprese dat musíte otestovat a změřit rozdíly výkonu, abyste zjistili, jestli je vhodná pro vaši úlohu. Další informace najdete v tématu Komprese odpovědí v ASP.NET Core.

Usnadnění Azure

Instrumentace kódu: Azure Monitor Application Insights podporuje automatickou instrumentaci (autoinstrumentaci) a ruční instrumentaci kódu aplikace. Automatická instrumentace umožňuje shromažďování telemetrických dat, aniž by se dotýkala kódu aplikace. Ruční instrumentace vyžaduje změny kódu k implementaci rozhraní API Application Insights nebo OpenTelemetry. K optimalizaci horkých cest můžete použít Profiler Application Insights .

Optimalizace logiky kódu: Azure nabízí sady SDK a knihovny pro různé programovací jazyky pro interakci se službami Azure. Pomocí sad SDK můžete zjednodušit interakce mezi aplikacemi a prostředky Azure. Sady SDK poskytují optimální interakci se službami Azure, což snižuje latenci a zvyšuje efektivitu.

Optimalizace správy paměti: Pomocí funkce inteligentního zjišťování Application Insights můžete analyzovat využití paměti a pomoct s identifikací a řešením nevracení paměti.

Azure App Service má profiler a funkci shromažďování a analýzy výpisu paměti. Funkce automatického úpravy App Service může automaticky přijímat výpisy paměti a trasování profilů aplikací .NET a Java.

Použití souběžnosti a paralelismu: Různé služby Azure poskytují jedinečnou podporu souběžnosti, například Azure Cosmos DB, Azure Functions a Blob Storage. V případě paralelismu podporují služby AKS nasazení kontejnerizovaných aplikací, což zlepšuje paralelní zpracování.

Azure Batch je cloudová služba pro plánování úloh, kterou můžete použít k povolení paralelního a vysoce výkonného výpočetního prostředí bez nutnosti nastavení infrastruktury. Další informace najdete v tématu Úlohy na pozadí.

Optimalizace výkonu infrastruktury: Implementujte šablony Azure Resource Manager, které definují a nasazují infrastrukturu pomocí kódu. Tyto šablony slouží k implementaci efektivních, opakovatelných a konzistentních nasazení prostředků. Azure Policy poskytuje funkce zásad správného řízení, které zajišťují, že nasazení prostředků odpovídají osvědčeným postupům a standardům organizace.

Pro asynchronní programování použijte škálovatelné služby řazení front, jako jsou Azure Queue Storage a Azure Service Bus, které usnadňují asynchronní programování. Úkoly můžete zařadit do fronty a nezávisle je zpracovávat. Pro podporu asynchronních operací nabízí Azure Marketplace fronty a nástroje třetích stran, které můžete integrovat se službami Azure.

Kontrolní seznam k efektivitě výkonu

Projděte si kompletní sadu doporučení.