Sdílet prostřednictvím


Doporučení pro optimalizaci logiky

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

PE:06 Používejte logiku, která je výkonná, a zajistěte, aby přesměrovávala odpovědnosti na platformu. Používejte logiku pouze k zamýšlenému účelu a pouze v případě potřeby.

Tato příručka popisuje doporučení pro optimalizaci výkonu kódu a infrastruktury. Chcete-li optimalizovat kód a infrastrukturu, měli byste komponenty používat pouze pro jejich základní účel a pouze v případě potřeby. Když nadměrně používáte kód a infrastrukturu, vytváří zbytečnou spotřebu prostředků, kritické body a pomalé reakce. Chcete-li kompenzovat tyto neefektivity, musíte přidat další zdroje k provedení stejných úkolů.

Definice

Pojem definice
Souběžnost Když se provádí více úkolů nebo procesů najednou, ale ne nutně přesně ve stejnou dobu.
Rovnoběžnost Když se provádí více úkolů nebo procesů současně.

Klíčové strategie návrhu

Optimalizace logiky a infrastruktury zahrnuje vyladění logiky a podpůrné infrastruktury, aby se zlepšila efektivita výkonu. Vyžaduje výkonnou logiku, která rychle provádí úlohy a neplýtvá zdroji. Vyžaduje dobře navrženou infrastrukturu, která je zjednodušená, aby nedocházelo ke zbytečné složitosti. Úloha by měla využívat inherentní možnosti platformy. Tento přístup pomáhá zajistit, aby se logika i infrastruktura používaly primárně pro své základní účely a pouze v případě potřeby.

Optimalizace výkonu logiky

Chcete-li optimalizovat výkon logiky, upravte kód tak, aby se snížilo využití prostředků, minimalizovala doba běhu a zvýšil výkon. Logiku můžete upravit, abyste zlepšili efektivitu a rychlost aplikace nebo toku. Nemaskujte problémy s výkonem hrubou silou. Hrubá síla znamená přidání výpočetních prostředků pro kompenzaci výkonu kódu, jako je přidání další kapacity místo řešení původního problému. Problémy s výkonem je třeba vyřešit optimalizací. Když optimalizujete výkon logiky, pomáhá maximalizovat využití systémových prostředků, zlepšuje dobu odezvy, snižuje latenci a zlepšuje uživatelský zážitek.

Instrumentujte svou logiku

Instrumentace logiky odkazuje na postup přidávání vlastního protokolování událostí pro shromažďování dat a monitorování výkonu logiky za běhu. Logická instrumentace umožňuje vývojářům shromažďovat informace o klíčových metrikách, jako je doba spuštění. Instrumentací logiky mohou vývojáři získat přehled o kritických logických cestách, identifikovat kritické body výkonu a optimalizovat logiku pro lepší efektivitu výkonu.

V ideálním případě byste měli provádět logickou analýzu v rané fázi životního cyklu vývoje softwaru. Čím dříve zachytíte logický problém, tím levnější je jeho oprava. Chcete automatizovat co nejvíce této logické analýzy. Používejte nástroje pro dynamickou a statickou analýzu kódu, abyste snížili ruční úsilí. Například Nástroj pro kontrolu toků může zvýraznit logiku, u které se neočekává, že bude výkonná, jako je například dotaz, který neurčuje kritéria filtru. Mějte však na paměti, že toto testování je stále simulací produkčního prostředí. Produkční prostředí poskytuje nejjasnější pochopení logické optimalizace.

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

Identifikace kritických cest

Instrumentací logiky můžete měřit spotřebu prostředků pro různé logické cesty. Tato měření vám pomohou identifikovat kritické části kódu. Kritické části kódu mají významný vliv na výkon a využití prostředků. Jsou to kritické nebo často spouštěné části programu, které vyžadují vysoký výkon a nízkou latenci.

Chcete-li identifikovat kritické cesty kódu, zvažte tyto kroky:

  • Analýza dat za běhu: Shromážděte data za běhu a analyzujte je, abyste identifikovali oblasti logiky, které spotřebovávají nejvíce uplynulého času. Hledejte vzory nebo části logiky, které se často spouštějí nebo jejichž dokončení trvá dlouho.

  • Měření výkonu: Pomocí nástrojů pro profilaci nebo architektur testování výkonu můžete měřit dobu provádění a spotřebu prostředků různých logických cest. Tento proces pomáhá identifikovat úzká místa a oblasti, které je třeba zlepšit. Například můžete použít Monitor v Power Apps, abyste získali lepší porozumění tomu, jak fungují události a vzorce obsažené v aplikaci, abyste mohli zlepšit výkon.

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

Optimalizace logiky

Optimalizace logiky spočívá v upřesnění struktury a návrhu logiky tak, aby prováděla úlohy s menším počtem prostředků. Vylepšená logika snižuje počet zbytečných operací. Vytváří rychlejší provádění s menší spotřebou prostředků. Měli byste odebrat všechny nepotřebné operace v rámci logické cesty, které by mohly mít vliv na výkon. Upřednostněte optimalizaci horkých cest, abyste dosáhli co největšího zvýšení efektivity výkonu.

Pokud chcete optimalizovat logiku, zvažte následující strategie:

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

  • 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 nezbytnost 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. Osvědčeným postupem je umožnit systému zapínat a vypínat protokolování, aby se usnadnilo ladění, aniž by to způsobovalo problémy s produkčním výkonem.

  • Optimalizace smyček a podmínek: Analyzujte smyčky a podmínky ve vaší logice 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í v rámci smyček a eliminujte redundantní výpočty. Zvažte přesunutí výpočtů mimo smyčku.

  • Omezte zbytečné zpracování dat: Zkontrolujte logiku 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 své logiky. Můžete například použít počítané sloupce, souhrnná pole Dataverse nebo sloupce Power Fx místo výpočtu hodnoty v kódu a jejího uložení s operací uložení.

  • Optimalizace datových struktur. Chcete-li efektivně ukládat a načítat data, vyberte vhodné datové struktury a pouze požadované datové sloupce. Vyberte nejlepší datovou strukturu pro konkrétní problém. Vhodná datová struktura zlepšuje výkon aplikace.

  • Minimalizace síťových požadavků: Pokud vaše logika zahrnuje vytváření síťových požadavků (například pomocí akce konektoru), minimalizujte počet požadavků a optimalizujte jejich využití. Pokud je to možné, provádějte dávkové požadavky a vyhněte se zbytečným odezvám, abyste zlepšili výkon.

  • Zmenšete velikost datové struktury: Zkontrolujte požadavky na data a odstraňte 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.

  • Pracujte asynchronně: Vyhodnoťte, jestli je možné ve vaší logice pracovat asynchronně místo synchronně. Například místo provádění vložené operace zvažte implementaci toku Power Automate pro zpracování práce asynchronně.

  • Před přizpůsobením nakonfigurujte. Pokud je to možné, používejte standardní součásti aplikace. Vlastní nastavení, jako jsou moduly plug-in a JavaScript, mohou ovlivnit výkon.

  • Minimalizovat ovládací prvky. Ve formulářích zobrazujte pouze pole, která potřebujete – příliš mnoho polí může zahltit uživatelské rozhraní a ovlivnit výkon. Minimalizujte počet ovládacích prvků na panelu příkazů, v aplikaci plátna nebo na vlastní stránce. Vyhněte se vnořování galerií nebo přidávání příliš mnoha komponent do galerie.

  • Optimalizujte dotazy na data. Načítejte pouze data, která v aplikaci nebo toku potřebujete. Pomocí zobrazení na straně serveru můžete data předem filtrovat a zúžit tak data relevantní pro váš dotaz.

Projděte si doporučení týkající se výkonu specifická pro produkt Power Platform, se kterým pracujete. Vyhodnoťte logiku podle těchto doporučení a identifikujte oblasti, které je potřeba zlepšit.

Kompromis: Optimalizace logiky a kritických částí kódu vyžaduje odborné znalosti. Identifikace logických neefektivit je subjektivní a může vyžadovat vysoce kvalifikované jednotlivce, které možná budete muset přetáhnout z jiných úkolů.

Použijte souběžnost a paralelismus.

Použití souběžnosti a paralelismu zahrnuje provádění více úloh nebo procesů, a to buď 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ě, může to snížit dobu běhu aplikace a zkrátit dobu odezvy.

Souběžnost a paralelismus efektivně distribuují zatížení mezi výpočetní prostředky. Při zvyšování souběžnosti nebo paralelismu zvažte dopad na jiné systémy, protože můžete překročit jejich limity. Například souběžná smyčka v toku Power Automate, která zpracovává jednu položku za druhou, může překročit limity požadavků konektoru použitého v logice smyčky.

Použijte paralelismus. Paralelismus je schopnost systému současně spouštět více úloh nebo procesů na více výpočetních zdrojích. Paralelismus rozděluje úlohu na menší úlohy, které se spouštějí paralelně. Když spustíte logiku paralelně, výkon se zlepší, protože úloha je distribuovaná napříč několika větvemi.

Použijte souběžnost. Souběžnost je schopnost systému spouštět více úloh nebo procesů. Souběžnost umožňuje, aby různé části úlohy probíhaly nezávisle na sobě, což může zlepšit celkový výkon.

  • Souběžné spuštění: Souběžné spuštění umožňuje, aby stejná logika běžela současně. Omezení souběžného provádění na jednu může mít vliv na serializaci logiky, což vede ke zpracování jedné položky najednou. Řízení množství souběžného provádění položek úloh může pomoct spravovat využití prostředků během zpracování. Například smyčky toku Power Automate lze nakonfigurovat tak, aby zpracovávaly více akcí paralelně pomocí vlastnosti Souběžná kontrola.

    Poznámka:

    Než povolíte souběžnost, mějte na paměti, že to znamená, že se bude provádět více akcí současně – pokud zapisujete data jako součást smyčky, ujistěte se, že cíl dat může zpracovávat souběžné požadavky.

  • Fronty: Fronta je vyrovnávací paměť úložiště umístěná mezi žádající komponentou (producentem) a zpracovatelskou komponentou (příjemcem) úlohy. Pro jednu frontu může existovat více příjemců. S přibývajícími úkoly byste měli škálovat spotřebitele tak, aby vyhovovali poptávce. 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 zpracovatelské službě, u které je poptávka ve špičkách. Další informace najdete v tématech Model vyrovnávání zatížení na základě fronty a Fronty úložiště a fronty služby Service Bus.

Optimalizace úloh na pozadí

Mnoho aplikací vyžaduje úlohy na pozadí, které běží nezávisle na uživatelském rozhraní. Aplikace může spustit úlohu a pokračovat ve 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 ani způsobovat nekonzistence kvůli zpožděnému provozu, když je systém pod zatížením. Další informace o optimalizaci úloh na pozadí najdete v tématu Doporučení pro vývoj úloh na pozadí.

Usnadnění dáky Power Platform

Instrumentace kódu: Při vytváření aplikací plátna by se ke zvýšení efektivity aplikací měly používat výkonné vzory, zatímco anti-vzorům je třeba se vyhnout. Další informace naleznete v tématu Přehled vytváření výkonné Power Apps. Pomocí funkce Monitorování v Power Apps můžete diagnostikovat a řešit problémy s výkonem během vývoje.

Měření angažovanosti a výsledků: při vytváření agentů je sledování angažovanosti v konverzacích a výstupů nezbytné pro měření výkonnostních metrik agentů a identifikaci oblastí pro zlepšení.

Optimalizace logiky kódu: Pomocí funkce kontroly řešení můžete provést bohatou kontrolu statické analýzy vašich řešení proti souboru pravidel osvědčených postupů a rychle identifikovat tyto problematické vzorce. Pomocí nástroje Kontrola toku můžete získat přehled o tom, které oblasti implementace vašeho toku představují riziko pro výkon.

Použití souběžnosti a paralelismu: Cloudové toky Power Automate podporují souběžnost ve smyčkách a aktivačních událostech. Mějte na paměti, že platí limity souběžnosti, smyček a debat, které jsou založené na vašem profilu výkonu. Power Apps podporují souběžnost pomocí funkce Souběžnost.

Optimalizace výkonu Dataverse: Microsoft Dataverse poskytuje rozsáhlý rámec, který vývojářům umožňuje vytvářet vysoce přizpůsobené a na míru šité prostředí. Při přizpůsobení, rozšíření nebo integraci s Dataverse mějte na paměti zavedené pokyny a osvědčené postupy. Viz Doporučené postupy a pokyny pro používání Microsoft Dataverse

Kontrolní seznam efektivity výkonu

Podívejte se na úplný soubor doporučení.