Sdílet prostřednictvím


Strategie architektury pro optimalizaci kódu a infrastruktury

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

PE:07 Optimalizujte kód a infrastrukturu. Použijte kód, který je výkonný, a zajistěte, aby přesměrovává odpovědnost na platformu. Kód a infrastrukturu používejte pouze pro svůj 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í účel a pouze v případě potřeby. Při nadměrném využití kódu a infrastruktury se vytváří zbytečná spotřeba prostředků, kritické body a pomalé reakce. Pokud chcete tyto nekompenzování kompenzovat, musíte přidat další zdroje, abyste mohli provádět stejné úlohy.

Definice

Term Definition
Souběžnost Pokud se provádí více úloh nebo procesů najednou, ale nemusí být nutně ve stejnou dobu.
Architektura procesoru Komponenty 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.
Únik paměti Pokud se úloze nepodaří uvolnit přidělenou paměť, jakmile už paměť nepotřebujete.
Rovnoběžnost Pokud se současně provádí více úloh nebo procesů.

Optimalizace kódu a infrastruktury zahrnuje vyladění kódu a podpůrné infrastruktury za účelem zvýšení efektivity výkonu. Vyžaduje výkonný kód, který provádí úlohy rychle a nevyhazuje 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 používat základní funkce platformy. Je to přístup, který pomáhá zajistit, aby se kód i infrastruktura používaly především 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, aby snížil využití prostředků, minimalizoval modul runtime a zvýšil výkon. Kód můžete upravit tak, aby se zlepšila efektivita a rychlost softwarového programu. Nezamaskujte problémy s výkonem hrubou silou. Hrubá síla znamená přidání výpočetních prostředků, které kompenzují výkon kódu, jako je přidání dodatečné kapacity místo adresování zdroje. Při optimalizaci je potřeba opravit problémy s výkonem. Při optimalizaci výkonu kódu pomáhá maximalizovat využití systémových prostředků, zlepšuje dobu odezvy, snižuje latenci a vylepš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žďuje data a monitoruje výkon kódu během 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ů (procesor, využití paměti) 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 v rané fázi životního cyklu vývoje softwaru provádět analýzu kódu. Dříve jste zachytili problém s kódem, tím levnějším je ho opravit. Chcete automatizovat co nejvíce této analýzy kódu. Pomocí nástrojů pro analýzu dynamického a statického kódu můžete snížit ruční úsilí. Mějte ale na paměti, že toto testování je stále simulací výroby. Produkční prostředí poskytuje nejjasnější znalosti optimalizace kódu.

Kompromis: Nástroje pro monitorování kódu pravděpodobně zvyšují 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ů. Jedná se o kritické nebo často prováděné části 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 za běhu: 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 oddíly kódu, které se často provádě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 účinek uživatele: Vyhodnoťte důležitost různých cest kódu na základě jejich relevance pro funkčnost nebo důležité obchodní operace aplikace. Určete, které cesty kódu jsou klíčové 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á v upř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. Vytvoří rychlejší spouštění s nižší spotřebou prostředků. V cestě 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. Při optimalizaci logiky kódu zvažte následující strategie:

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

  • Minimalizovat operace 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 důležitá pro analýzu výkonu.

  • Optimalizace smyček a podmíněných podmínek: Analyzujte smyčky a podmíněné výrazy v kódu a identifikujte všechny zbytečné iterace nebo podmínky, které je možné odstranit. 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 zrušení registrace smyčky.

  • Snižte zbytečné zpracování dat: Zkontrolujte kód pro všechny nepotřebné operace 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 efektivně ukládat a načítat data, 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í. Dávkové požadavky, pokud je to možné, a vyhněte se zbytečným odezvám, aby se zlepšil výkon.

  • Minimalizace přidělení: Určete oblasti, ve kterých dochází k nadměrnému přidělení paměti. Optimalizujte kód snížením nepotřebných přidělení a opětovným použitím stávají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šení velikosti datové struktury: Vyhodnoťte velikost datových struktur, jako jsou třídy, a určete oblasti, ve kterých je to možné. 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 balení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 komunikovaly se službami a prostředky na platformě nebo v rámci architektury. Například sady SDK nativní pro cloud fungují lépe s rovinami dat cloudové služby než s vlastním přístupem k rozhraní API. Sady SDK excelují při 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 zlepšit výkon vaší úlohy.

  • Implementace křížového dělení: Zvažte účinky křížových implementací, jako jsou kontroly middlewaru nebo tokenů, a vyhodnoťte, zda 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 proti těmto doporučením, abyste identifikovali oblasti pro zlepšení.

Kompromisy:

  • Optimalizace kódu a horkých cest vyžaduje zkušenosti vývojářů s identifikací efektivity kódu je subjektivní a může být vysoce kvalifikovaná individuální potřebná pro jiné úkoly.
  • 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 upřesnění způsobu, jakým úloha využívá, přiděluje a vydává prostředky paměti, aby se zlepšila efektivita. Správná správa paměti zlepšuje výkon kódu, protože snižuje režii operací s pamětí. Efektivní využití paměti snižuje latenci, zabraňuje zpomalení systému nebo chybovému ukončení 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. Zachytí stav paměti aplikace v určitém časovém okamžiku. Výpisy paměti umožňují retrospektivní analýzu problémů souvisejících s pamětí. Na základě povahy problému, který se pokoušíte diagnostikovat, a dostupných prostředků vyberte odpovídající typ výpisu paměti. Pro běžné ladění a úplné výpisy paměti byste měli použít miniaturní výpisy paměti pro složité a kritické problémy. Tato strategie poskytuje rovnováhu mezi využitím prostředků a možnostmi diagnostiky. Mnoho hostitelských služeb kódu podporuje ladění paměti. U služeb, které podporují analýzu paměti, byste měli upřednostňovat služby, které ne. Tady jsou základní kroky ladění problémů s pamětí:

  1. Zachycení výpisů paměti: Začněte nastavením mechanismu pro zachycení výpisů paměti během modulu runtime vaší aplikace. Zachytávání se dá 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ž tento proces mohou nabídnout.

  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, jako je WinDbg pro aplikace systému Windows nebo GDB pro systémy Unix, vám může pomoct celá řada nástrojů.

  3. Identifikace nevracení paměti: Zaměřte se na identifikaci nevracené paměti během analýzy. Při přidělení paměti dojde k nevracení paměti, ale pokud už paměť nepotřebujete, aplikace ji uvolní. Vyhledejte objekty nebo datové struktury, které zůstávají v paměti, i když by se měly uvolnit.

  4. Oprava a testování: Při 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í důkladným testováním, aby se zajistila jejich účinnost.

  5. Iterace a monitorování: Správa paměti je průběžný proces. Pravidelně monitorujte využití paměti aplikace a zachovejte shromažďování výpisů paměti v produkčním prostředí. Pravidelně se znovu navštěvujte fáze analýzy a optimalizace, abyste měli jistotu, že se při následných úpravách kódu znovu nezobrazí problémy s pamětí.

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

Snižte přidělení paměti. Minimalizujte přidělení paměti, abyste snížili celkové nároky na paměť kódu. Vaše úloha může efektivně využívat dostupnou paměť. Systém uvolňování paměti nemusí uvolnit nevyužitou paměť a snižuje frekvenci a dobu trvání cyklů uvolňování paměti. Přidělení paměti může být nákladné, zejména pokud je často provádíte. Minimalizujte přidělení paměti, aby se kód mohl rychle a efektivně spouštět.

Ukládá často přístupná data do mezipaměti blízko procesoru, což zvyšuje výkon. Když minimalizujete přidělení paměti, je méně kolize místa v mezipaměti, takže můžete mezipaměť 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é: K minimalizaci spotřeby paměti používejte místní proměnné místo globálních proměnných.

  • 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ůch

Další informace naleznete v tématu Snížení přidělení paměti a haldy 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 bylo možné efektivně využívat výpočetní prostředky. Tyto techniky zvyšují celkovou propustnost a počet úloh, které může úloha zpracovat. Když spouštíte úlohy souběžně nebo paralelně, snižuje běh aplikace a snižuje latenci a zvyšuje dobu 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ě distribuují úlohy mezi výpočetní prostředky.

Používejte paralelismus. Paralelismus je schopnost systému současně spouštět více úloh nebo procesů na více výpočetních prostředcích. Paralelismus rozděluje úlohu na menší úlohy, které běží paralelně. Paralelismus můžete dosáhnout pomocí technik, jako je multiprocesing nebo distribuovaný computing. Distribuce úloh mezi vícejádrovými procesory za účelem optimalizace správy úloh Optimalizujte kód tak, aby využíval architekturu procesoru, modely vláken a vícejádrový procesor. Při paralelním spuštění kódu se výkon zlepší, protože úloha se distribuuje napříč více jádry.

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 se více vláken spouští souběžně v rámci jednoho procesu. 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 k aktivaci ú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í. Pomocí asynchronního programování může program inicializovat více úloh a čekat na jejich dokončení asynchronně. Program nemusí čekat na dokončení každého úkolu, než přejde na další úkol.

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

    Mnoho architektur a knihoven poskytuje integrovanou podporu asynchronního programování. Například na platformě .NET můžete implementovat asynchronní operace pomocí vzorů, jako jsouTask-Based asynchronní vzor a Event-Based asynchronní vzor. 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 požadovanou komponentou (producentem) a zpracovatelskou komponentou (příjemcem) úlohy. Pro jednu frontu může existovat více příjemců. S rostoucím zatížením byste měli škálovat uživatele tak, aby splňovali 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čku v poptávce. Další informace najdete v tématu Queue-Based vzor vyrovnávání zatížení a fronty úložiště a fronty služby Service Bus.

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

Sdružování připojení je postup opětovného použití vytvořených databázových připojení místo vytvoření nového připojení pro každou žádost. Vytvoření 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 zvláště náročná pro aplikace, které často otevírají nová připojení. Sdružování připojení znovu používá stávají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ž aktuálně máte. Cílem je mít fond připojení rychle zpracovávat 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í. Když 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á se v základních testovacích scénářích provádějí rychle. Aplikace může vyčerpat výchozí velikost fondu ve velkém měřítku a vytvořit kritické body. 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í mírně odlišné požadavky na nastavení a používání fondu. Otestujte fond připojení, abyste měli jistotu, že funguje efektivně při zatížení.

Riziko: Sdružování připojení může způsobit 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 pokračovat v zpracování interaktivních požadavků 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 nebo způsobit nekonzistence kvůli zpožděné operaci při zatížení systému. 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, aby se zajistila špička provozu a nejlepší využití prostředků pro úlohu. Díky vyladění infrastruktury můžete minimalizovat plýtvání, snižovat prodlevy a dosahovat větších výsledků s dostupnými prostředky. Zajišťuje spolehlivé a rychlé spouštění úloh, což vede ke zlepšení uživatelského prostředí a úspor 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 limity procesoru a paměti podů ve službě 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 úlohu, abyste snížili potenciál problémů s interakcí, závislostí a kompatibilitou. Při zjednodušení úloh 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 poptávku umístěnou v aplikaci a povolte prostředkům provádění jejich primárních úloh. Běžným postupem je například vyhnout se spouštění řešení zabezpečení v kódu nebo v 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 pomáhají snížit zatížení vaší úlohy:

  • Konečná konzistence: Osvojte si model konečné konzistence, abyste zvýšili výkon tím, že umožníte mírně datovat data. Konečná konzistence snižuje okamžitou poptávku po cyklech procesoru a šířce pásma sítě pro konstantní 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řesměrujete, snížíte zatížení na serverech a zlepšíte výkon.

Optimalizujte síť. Pokud chcete optimalizovat síť úloh pro výkon, 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 vytváření nových připojení.

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

  • Síťová chattnost: Dávkové síťové požadavky společně snižují počet požadavků. Místo vytváření více malých požadavků je zkombinujte do větších požadavků, abyste snížili režii na síť.

  • Databázové dotazy: Ujistěte se, že databázové dotazy načítají 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 pomalé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ům. Když ukládáte data do mezipaměti, nemusí cestovat po dlouhých vzdálenostech. Ukládání do mezipaměti zlepšuje dobu odezvy a snižuje síťový provoz.

  • Shromažďování protokolů: Shromážděte a zachovejte 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 sbalte obsah HTTP a data souborů , aby bylo možné rychle přenášet mezi klienty a servery. Komprese zmenší data, která stránka nebo rozhraní API vrátí, a odešle zpět do prohlížeče nebo klientské aplikace. Komprese optimalizuje síťový provoz, což může zrychlit komunikaci aplikací.

    Kompromis: Komprese přidává zpracování na straně serveru a na straně klienta. Aplikace musí komprimovat, odesílat a dekompresovat data. Komunikace vícesměrového vysílání nebo komunikace s více příjemci může způsobit režii dekomprese. Než a po implementaci komprese dat potřebujete otestovat a změřit varianty 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í na platformě Azure

Instrumentace kódu: Azure Monitor Application Insights podporuje automatickou instrumentaci (automatickou instalaci) a ruční instrumentaci kódu aplikace. Autoinstrumentace umožňuje shromažďování telemetrických dat bez zásahu do kódu aplikace. Ruční instrumentace vyžaduje změny kódu pro implementaci rozhraní Application Insights nebo OpenTelemetry API. Profiler Application Insights můžete použít k optimalizaci horkých cest.

Optimalizace logiky kódu: Azure nabízí sady SDK a knihovny pro různé programovací jazyky pro interakci se službami Azure. Použití sad SDK ke zjednodušení interakcí 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: Funkce inteligentního zjišťování Application Insights slouží k analýze spotřeby paměti a k identifikaci a řešení nevracení paměti.

Azure App Service má profiler a funkci shromažďování a analýzy výpisu paměti. Funkce automatického zpronevění služby 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, jako je Azure Cosmos DB, Azure Functions a úložiště objektů blob. Pro paralelismus služba AKS podporuje nasazování 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 Manageru pro definování a nasazení infrastruktury pomocí kódu. Pomocí těchto šablon můžete implementovat efektivní, opakovatelná a konzistentní nasazení prostředků. Azure Policy poskytuje možnosti zásad správného řízení, které zajišťují, aby nasazení prostředků dodržovala osvědčené postupy a standardy organizace.

Pro asynchronní programování používejte škálovatelné služby řízení front, jako je Azure Queue Storage a Azure Service Bus, k usnadnění asynchronního programování. Úlohy můžete zařadit do fronty a nezávisle je zpracovat. Azure Marketplace nabízí pro podporu asynchronních operací front a nástrojů třetích stran, které můžete integrovat se službami Azure.

Kontrolní seznam efektivity výkonu

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