Rekommendationer för att optimera logiken
Gäller för den här Power Platform checklisterekommendationen för prestandaeffektivitet för välstrukturerat ramverk:
PE:06 | Använd logik som presterar och se till att den avlastar ansvar till plattformen. Använd endast logik för det avsedda syftet och endast när det är nödvändigt. |
---|
I den här guiden beskrivs rekommendationerna för att optimera kod- och infrastrukturprestanda. För att optimera din kod och infrastruktur bör du endast använda dina komponenter för deras kärnsyfte och endast när det behövs. När du överanvänder kod och infrastruktur skapar det onödig resursförbrukning, flaskhalsar och långsamma svar. För att kompensera för dessa ineffektiviteter måste du lägga till fler resurser för att utföra samma uppgifter.
Definitioner
Begrepp | Definition |
---|---|
Samtidighet | När flera uppgifter eller processer utförs samtidigt men inte nödvändigtvis exakt samtidigt. |
Parallellitet | När flera uppgifter eller processer utförs samtidigt. |
Viktiga designstrategier
Optimering av logik och infrastruktur innebär att finjustera logiken och den stödjande infrastrukturen för att förbättra prestandaeffektiviteten. Det kräver högpresterande logik som utför uppgifter snabbt och inte slösar med resurser. Det kräver en väl utformad infrastruktur som är strömlinjeformad för att undvika onödig komplexitet. En arbetsbelastning bör använda plattformens inbyggda funktioner. Den här metoden hjälper till att säkerställa att både logik och infrastruktur främst används för sina kärnsyften och endast när det behövs.
Optimera logikprestanda
Om du vill optimera logikprestanda ändrar du koden för att minska resursanvändningen, minimera körningen och förbättra prestandan. Du kan ändra logiken för att förbättra effektiviteten och hastigheten för en app eller ett flöde. Maskera inte prestandaproblem med råstyrka. Brute force innebär att du lägger till beräkningsresurser för att kompensera för kodprestanda, som att lägga till extra kapacitet i stället för att adressera källan. Du måste åtgärda prestandaproblem med optimering. När du optimerar logikprestanda hjälper det till att maximera användningen av systemresurser, förbättrar svarstiden, minskar latensen och förbättrar användarupplevelsen.
Instrumentera din logik
Instrumenteringslogik syftar på att lägga till anpassad händelseloggning för att samla in data och övervaka logikprestanda under körning. Med logikinstrumentation kan utvecklare samla in information om viktiga mått, till exempel körningstid. Genom att instrumentera logik kan utvecklare få insikter om frekventa logiksökvägar, identifiera flaskhalsar i prestanda och optimera logiken för bättre prestandaeffektivitet.
Helst bör du utföra logisk analys tidigt i programvaruutvecklingens livscykel. Ju tidigare du upptäcker ett logikproblem, desto billigare är det att åtgärda. Du vill automatisera så mycket av den här logikanalysen som möjligt. Använd dynamiska och statiska kodanalysverktyg för att minska det manuella arbetet. Till exempel Flödeskontroll kan markera logik som inte förväntas prestera, till exempel en fråga som inte anger filtervillkor. Tänk dock på att den här testningen fortfarande är en simulering av produktionen. Produktion ger den tydligaste förståelsen för logikoptimering.
Kompromiss: Verktyg för logisk övervakning kommer sannolikt att öka kostnaderna.
Identifiera frekventa sökvägar
Genom att instrumentera logiken kan du mäta resursförbrukningen för olika logiksökvägar. Dessa mätningar hjälper dig att identifiera frekventa sökvägar. Frekventa sökvägar har en betydande inverkan på prestanda och resursanvändning. De är kritiska eller ofta körda delar av ett program som kräver höga prestanda och låg latens.
För att identifiera frekventa sökvägar i koden, överväg följande steg:
Analysera körningsdata: Samla in körningsdata och analysera dem för att identifiera områden i logiken som förbrukar mest förfluten tid. Leta efter mönster eller delar av logik som körs ofta eller tar lång tid att slutföra.
Mät prestanda: Använd profileringsverktyg eller ramverk för prestandatestning för att mäta körningstiden och resursförbrukningen för olika logiska sökvägar. Denna process hjälper till att identifiera flaskhalsar och förbättringsområden. Du kan till exempel använda Övervaka i Power Apps för att få en bättre förståelse för hur händelserna och formlerna för din app fungerar så att du kan förbättra prestandan.
Överväg affärslogik och användareffekt: Utvärdera vikten av olika logiska sökvägar baserat på deras relevans för programmets funktioner eller kritiska affärsåtgärder. Fastställ vilka logiska sökvägar som är avgörande för att leverera värde till användare eller för att uppfylla prestandakrav.
Optimera logik
Att optimera logik handlar om att förfina logikens struktur och design för att utföra uppgifter med färre resurser. Förbättrad logik minskar onödiga åtgärder. Det skapar snabbare körning med mindre resursförbrukning. Du bör ta bort alla onödiga åtgärder i logiksökvägen som kan påverka prestandan. Prioritera optimering av oftast använda frekventa sökvägar för att se de största effektivitetsvinsterna för prestanda.
Överväg följande strategier för att optimera logiken:
Ta bort onödiga funktionsanrop: Granska logiken och identifiera funktioner som inte är nödvändiga för önskad funktionalitet och som kan påverka prestanda negativt. Om ett funktionsanrop till exempel utför en validering som slutförts tidigare i koden kan du ta bort det onödiga valideringsfunktionsanropet.
Minimera loggningsåtgärder: Loggning kan vara till hjälp för felsökning och analys, men överdriven loggning kan påverka prestandan. Utvärdera nödvändigheten av varje loggningsåtgärd och ta bort onödiga loggningsanrop som inte är viktiga för prestandaanalys. En bra idé är att låta systemet aktivera och inaktivera loggning för att hjälpa till med felsökning utan att orsaka problem med produktionsprestanda.
Optimera loopar och villkor: Analysera loopar och villkorssatser i logiken och identifiera onödiga iterationer eller villkor som kan elimineras. Genom att förenkla och optimera dessa strukturer kan du förbättra kodens prestanda. Minimera funktionsanrop i loopar och eliminera redundanta beräkningar. Överväg att flytta beräkningar utanför loopen.
Minska onödig databehandling: Granska logiken för onödiga databehandlingsåtgärder, till exempel redundanta beräkningar eller transformeringar. Eliminera dessa onödiga åtgärder för att förbättra logikens effektivitet. Du kan till exempel använda Dataverse beräknade kolumner, sammanslagningsfält eller Power Fx-kolumner i stället för att beräkna värdet i kod och lagra det med åtgärden spara.
Optimera datastrukturer. Om du vill lagra och hämta data på ett effektivt sätt väljer du lämpliga datastrukturer och endast de datakolumner som krävs. Välj den bästa datastrukturen för ett specifikt problem. En lämplig datastruktur förbättrar programmets prestanda.
Minimera nätverksbegäranden: Om din logik innebär att göra nätverksbegäranden (till exempel med hjälp av en anslutningsåtgärd) minimerar du antalet begäranden och optimerar deras användning. Batchbegäranden när det är möjligt och undvik onödiga tur och retur-resor för att förbättra prestandan.
Minska datastrukturens storlek: Granska datakraven och eliminera onödiga fält eller egenskaper. Optimera minnesanvändningen genom att välja lämpliga datatyper och packa data effektivt.
Arbeta asynkront: Utvärdera om arbetet kan utföras asynkront i stället för synkront i logiken. Till exempel, i stället för att utföra åtgärden infogad bör du överväga att implementera ett Power Automate-flöde för att bearbeta arbetet asynkront.
Konfigurera innan du anpassar. Använd standardprogramkomponenter om du kan. Anpassningar som plugin-program och JavaScript kan påverka prestandan.
Minimera kontroller. Visa bara de fält du behöver i formulären – för många fält kan göra användargränssnittet rörigt och påverka prestandan. Minimera antalet kontroller i kommandofältet, arbetsyteappen eller den anpassade sidan. Undvik att kapsla gallerier eller lägga till för många komponenter i ett galleri.
Optimera datafrågor. Läs bara in de data som du behöver i en app eller ett flöde. Använd vyer på serversidan för att förfiltrera data för att begränsa data som är relevanta för din fråga.
Granska de prestandarekommendationer som är specifika för den Power Platform-produkt du arbetar med. Utvärdera logiken mot dessa rekommendationer för att identifiera områden som kan förbättras.
Kompromisser: Optimering av logik och frekventa sökvägar kräver expertis. Att identifiera logisk ineffektivitet är subjektivt och kan kräva mycket skickliga personer, som du kan behöva hämta från andra uppgifter.
Använda samtidighet och parallellitet
Att använda samtidighet och parallellitet innebär att köra flera uppgifter eller processer antingen samtidigt eller på ett överlappande sätt för att effektivt använda beräkningsresurser. Dessa tekniker ökar det totala dataflödet och antalet uppgifter som en arbetsbelastning kan bearbeta. När du kör uppgifter samtidigt eller parallellt kan det minska körtiden för programmet och öka svarstiderna.
Samtidighet och parallellitet fördelar effektivt arbetsbelastningen mellan beräkningsresurserna. När du ökar samtidighet eller parallellitet bör du tänka på påverkan på andra system, eftersom du kan överskrida deras gränser. Till exempel kan en samtidig loop i ett Power Automate-flöde som bearbetar varje objekt i taget överskrida begärandegränserna för ett anslutningsprogram som används i loopens logik.
Använd parallellitet. Parallellitet är möjligheten för ett system att samtidigt utlösa flera uppgifter eller processer på flera beräkningsresurser. Parallellitet delar upp en arbetsbelastning i mindre uppgifter som körs parallellt. När du kör logik parallellt förbättras prestandan eftersom arbetsbelastningen distribueras över flera grenar.
Använda samtidighet. Samtidighet är möjligheten för ett system att köra flera uppgifter eller processer. Samtidighet gör det möjligt för olika delar av en arbetsbelastning att göra framsteg oberoende av varandra, vilket kan förbättra den övergripande prestandan.
Samtidig körning: Samtidig körning gör att samma logik kan köras samtidigt. Att begränsa samtidig körning till en kan leda till serialisering av logik, vilket resulterar i bearbetning av ett objekt i taget. Genom att kontrollera mängden samtidig körning av arbetsbelastningsobjekt kan du hantera resursanvändningen under bearbetningen. Power Automate-flödesloopar kan till exempel konfigureras för att bearbeta flera åtgärder parallellt med hjälp av egenskapen Samtidig kontroll.
Obs
Innan du aktiverar samtidighet bör du tänka på att det innebär att flera åtgärder utförs samtidigt – om du skriver data som en del av loopen ska du se till att målet för data kan hantera samtidiga begäranden.
Köer: En kö är en lagringsbuffert som finns mellan en begärande komponent (producent) och bearbetningskomponenten (konsumenten) för arbetsbelastningen. Det kan finnas flera konsumenter för en enda kö. När uppgifterna ökar bör du skala konsumenterna för att möta efterfrågan. Producenten placerar uppgifter i en kö. Kön lagrar uppgifterna tills en konsument har kapacitet. En kö är ofta det bästa sättet att lämna över arbete till en bearbetningstjänst som upplever toppar i efterfrågan. Mer information finns i Mönster för köbaserad belastningsutjämning och Lagringsköer och Service Bus-köer.
Optimera bakgrundsjobb
Många appar kräver bakgrundsuppgifter som körs oberoende av användargränssnittet. Programmet kan starta jobbet och fortsätta att bearbeta interaktiva begäranden från användare. Exempel på bakgrundsjobb är batchjobb, processorintensiva uppgifter och långvariga processer, till exempel arbetsflöden. Bakgrundsaktiviteter bör inte blockera programmet eller orsaka inkonsekvenser på grund av fördröjd drift när systemet är under belastning. Mer information om hur du optimerar bakgrundsjobb finns i Rekommendationer för att utveckla bakgrundsjobb.
Underlätta Power Platform
Instrumenteringskod: När du skapar arbetsyteappar bör högpresterande mönster användas för att förbättra appens effektivitet, medan antimönster bör undvikas. Mer information finns i Översikt av of skapa effektiva Power Apps. Använd Övervaka i Power Apps för att diagnostisera och felsöka prestandaproblem under utvecklingen.
Mät engagemang och resultat: När du bygger agenter är det viktigt att spåra konversationsengagemang och resultat för att mäta agentens resultat och identifiera områden som kan förbättras.
Optimering av kodlogik: Med funktionen lösningskontroll kan du utforma en omfattande statisk analyskontroll på dina lösningar mot en uppsättning regler och snabbt identifiera dessa problemmönster. Med Flödeskontroll kan du få insikter om vilka delar av ditt flödes implementering som utgör en prestandarisk.
Använda samtidighet och parallellitet: Power Automate molnflöden stöder samtidighet i loopar och utlösare. Observera att samtidighet, loopning och ombatchningsgränser och debatching gäller och baseras på din prestandaprofil. Power Apps stöd för samtidighet med hjälp av funktionen Samtidighet.
Optimera Dataverse-prestanda: Microsoft Dataverse ger ett utökningsbart ramverk som gör det möjligt för utvecklare att skapa mycket anpassade och skräddarsydda miljöer. När du anpassar, utökar eller integrerar med Dataverse bör du vara medveten om den etablerade vägledningen och bästa praxis. Se Metodtips och vägledning för Microsoft Dataverse.
Relaterad information
- Samtidighet, loopning och ombatchningsgränser i Power Automate
- Produktspecifik vägledning för optimering av Dynamics 365-prestanda
- Prestandaoptimering och optimering för kundengagemangsappar
- Översikt över hur du skapar utförande Power Apps
- Översikt över Övervaka
- Förbättra komponentprestanda, -stabilitet och -tillförlitlighet med lösningskontrollen
Checklista för prestandaeffektivitet
Se den fullständiga uppsättningen med rekommendationer.