Anbefalinger for optimalisering av logikk
Gjelder denne Power Platform Well-Architected-sjekklisteanbefalingen for ytelseseffektiviteten:
PE:06 | Bruk logikk som er effektiv, og sørg for at den overlater ansvaret til plattformen. Bruk logikk bare for det tiltenkte formålet, og bare når det er nødvendig. |
---|
Denne veiledningen beskriver anbefalingene for optimalisering av kode- og infrastrukturytelse. For å optimalisere koden og infrastrukturen bør du bare bruke komponentene til kjerneformålet, og bare når det er nødvendig. Når du overbruker kode og infrastruktur, skaper det unødvendig ressursforbruk, flaskehalser og trege svar. For å kompensere for disse ineffektivitetene må du legge til flere ressurser for å utføre de samme oppgavene.
Definisjoner
Term | Definisjon |
---|---|
Samtidighet | Når flere oppgaver eller prosesser utføres samtidig, men ikke nødvendigvis på nøyaktig samme tidspunkt. |
Parallellitet | Når flere oppgaver eller prosesser utføres samtidig. |
Viktige utformingsstrategier
Optimalisering av logikk og infrastruktur innebærer finjustering av logikken og den støttende infrastrukturen for å forbedre ytelseseffektiviteten. Det krever effektiv logikk som utfører oppgaver raskt og ikke sløser med ressurser. Det krever en godt utformet infrastruktur som er strømlinjeformet for å unngå unødvendig kompleksitet. En arbeidsbelastning bør bruke plattformens iboende evner. Denne tilnærmingen bidrar til å sikre at både logikk og infrastruktur primært brukes til kjerneformålene og bare når det er nødvendig.
Optimalisere logisk ytelse
Hvis du vil optimalisere logikkytelsen, kan du endre kode for å redusere ressursbruken, minimere kjøretiden og forbedre ytelsen. Du kan endre logikk for å forbedre effektiviteten og hastigheten til en app eller flyt. Ikke masker ytelsesproblemer med rå kraft. Rå kraft betyr å legge til databehandlingsressurser for å kompensere for kodeytelse, som å legge til ekstra kapasitet i stedet for å håndtere kilden. Du må løse ytelsesproblemer med optimalisering. Når du optimaliserer logisk ytelse, bidrar det til å maksimere utnyttelsen av systemressurser, forbedrer svartiden, reduserer ventetiden og forbedrer brukeropplevelsen.
Instrumenter logikken din
Instrumenteringslogikk refererer til praksisen med å legge til egendefinert hendelseslogging for å samle inn data og overvåke logisk ytelse under kjøretid. Logisk instrumentering gjør det mulig for utviklere å samle informasjon om viktige beregninger, for eksempel utførelsestid. Ved å instrumentere logikk kan utviklere få innsikt i logiske baner, identifisere ytelsesflaskehalser og optimalisere logikken for bedre ytelseseffektivitet.
Ideelt sett bør du utføre logisk analyse tidlig i livssyklusen for programvareutvikling. Jo tidligere du oppdager et logisk problem, jo rimeligere er det å fikse. Du vil automatisere så mye av denne logiske analysen som mulig. Bruk dynamiske og statiske kodeanalyseverktøy for å redusere den manuelle innsatsen. For eksempel kan Flytkontroll utheve logikk som ikke forventes å være effektiv, for eksempel en spørring som ikke angir filtervilkår. Vær imidlertid oppmerksom på at denne testingen fortsatt er en simulering av produksjonen. Produksjon gir den klareste forståelsen av optimalisering av logikk.
Avveining: Verktøy for overvåkning av logikk vil sannsynligvis øke kostnadene.
Identifisere høyfrekvente baner
Ved å instrumentere logikken kan du måle ressursforbruket for ulike logiske baner. Disse målingene hjelper deg med å identifisere høyfrekvent baner. Høyfrekvente baner har en betydelig effekt på ytelse og ressursbruk. De er kritiske eller ofte utførte deler av et program som krever høy ytelse og lav ventetid.
For å identifisere høyfrekvente baner stier i koden, bør du vurdere disse trinnene:
Analyser kjøretidsdata: Samle inn kjøretidsdata og analyser dem for å identifisere områder av logikken som bruker mest forløpt tid. Se etter mønstre eller deler av logikk som ofte utføres eller tar lang tid å fullføre.
Mål ytelse: Bruk profileringsverktøy eller rammeverk for ytelsestesting til å måle kjøretid og ressursforbruk for ulike logiske baner. Denne prosessen bidrar til å identifisere flaskehalser og forbedringsområder. Du kan for eksempel bruke Overvåk i Power Apps for å få en bedre forståelse av hvordan hendelsene og formlene i appen fungerer, slik at du kan øke ytelsen.
Vurder forretningslogikk og brukereffekt: Evaluer viktigheten av ulike logiske baner basert på deres relevans for programmets funksjonalitet eller kritiske forretningsoperasjoner. Bestem hvilke logiske baner som er avgjørende for å levere verdi til brukere eller for å oppfylle ytelseskrav.
Optimaliser logikk
Optimalisering av logikk handler om å raffinere strukturen og utformingen av logikk for å utføre oppgaver med færre ressurser. Forbedret logikk reduserer unødvendige operasjoner. Det skaper raskere utførelse med mindre ressursforbruk. Du bør fjerne alle unødvendige operasjoner i den logiske banen som kan påvirke ytelsen. Prioriter optimalisering av høyfrekvente baner for å se de største ytelseseffektivitetsgevinstene.
For å optimalisere logikken bør du vurdere følgende strategier:
Fjern unødvendige funksjonskall: Gå gjennom logikken og identifiser eventuelle funksjoner som ikke er nødvendige for ønsket funksjonalitet, og som kan påvirke ytelsen negativt. Hvis et funksjonskall for eksempel utfører en validering som er fullført tidligere i koden, kan du fjerne det unødvendige valideringsfunksjonskallet.
Minimer loggingsoperasjoner: Logging kan være nyttig for feilsøking og analyse, men overdreven logging kan påvirke ytelsen. Evaluer nødvendigheten av hver loggingsoperasjon, og fjern eventuelle unødvendige loggkall som ikke er kritiske for ytelsesanalyse. En god praksis er å la systemet slå logging av og på, for å hjelpe til med feilsøking mens det ikke forårsaker problemer med produksjonsytelsen.
Optimaliser løkker og betingelser: Analyser løkker og betingelser i logikken din, og identifiser eventuelle unødvendige gjentakelser eller betingelser som kan elimineres. Forenkling og optimalisering av disse strukturene kan forbedre ytelsen til koden din. Minimer funksjonskall i løkker, og eliminer overflødige beregninger. Vurder å flytte beregninger utenfor løkken.
Reduser unødvendig databehandling: Se gjennom logikken for unødvendige databehandlingsoperasjoner, for eksempel overflødige beregninger eller transformasjoner. Eliminer disse unødvendige operasjonene for å forbedre effektiviteten til logikken din. For eksempel, bruk Dataverse beregnede kolonner, felt for beregnet verdi eller Power Fx-kolonner i stedet for å beregne verdien i kode og lagre den med en lagringsoperasjon.
Optimalisere datastrukturer. Hvis du vil lagre og hente data på en effektiv måte, velger du aktuelle datastrukturer og bare de nødvendige datakolonnene. Velg den beste datastrukturen for et bestemt problem. En egnet datastruktur forbedrer programytelsen.
Minimer nettverksforespørsler: Hvis logikken din innebærer nettverksforespørsler (for eksempel ved hjelp av en tilkoblingshandling), minimerer du antall forespørsler og optimaliserer bruken av dem. Batchforespørsler når det er mulig, og unngå unødvendige rundturer for å forbedre ytelsen.
Reduser datastrukturstørrelsen: Se gjennom datakravene, og fjern eventuelle unødvendige felter eller egenskaper. Optimaliser minnebruken ved å velge riktige datatyper og organisere og lagre data effektivt.
Utfør arbeid asynkront: Vurder om arbeidet kan utføres asynkront i stedet for synkront i logikken. I stedet for å utføre operasjonen direkte i hovedflyten, bør du for eksempel vurdere å implementere en Power Automate-flyt for å behandle arbeidet asynkront.
Konfigurer før du tilpasser. Bruk standard programkomponenter hvis du kan. Tilpasninger som programtillegg og JavaScript kan påvirke ytelsen.
Minimer kontroller. Vis bare felter du trenger i skjemaene – for mange felter kan rote til brukergrensesnittet og påvirke ytelsen. Minimer antall kontroller på kommandolinjen, lerretsappen eller den egendefinerte siden. Unngå å hekke gallerier eller legge til for mange komponenter i et galleri.
Optimaliser dataspørringer. Last bare inn dataene du trenger i en app eller flyt. Bruk visninger på serversiden til å forhåndsfiltrere data for å begrense data som er relevante for spørringen.
Gå gjennom ytelsesanbefalingene som er spesifikke for Power Platform-produktet du arbeider med. Evaluer logikken din mot disse anbefalingene for å identifisere områder som kan forbedres.
Avveining: Optimalisering av logikk og høyfrekvent baner krever ekspertise. Identifisering av logiske ineffektiviteter er subjektivt og kan kreve høyt kvalifiserte personer, som du kanskje må trekke fra andre oppgaver.
Bruk samtidighet og parallellitet
Bruk av samtidighet og parallellitet innebærer å utføre flere oppgaver eller prosesser enten samtidig eller på en overlappende måte for å gjøre effektiv bruk av databehandlingsressurser. Disse teknikkene øker den totale gjennomstrømningen og antall oppgaver som en arbeidsbelastning kan behandle. Når du kjører oppgaver samtidig eller parallelt, kan det redusere kjøretiden til programmet og øke svartiden.
Samtidighet og parallellitet fordeler effektivt arbeidsbelastningen mellom databehandlingsressursene. Når du øker samtidighet eller parallellitet, bør du vurdere virkningen på andre systemer, da du kan overskride grensene deres. En samtidig løkke i en Power Automate-flyt som behandler hvert element om gangen, kan for eksempel overskride forespørselsgrensene for en kobling som brukes i løkkens logikk.
Bruk parallellitet. Parallellitet er et systems evne til samtidig å utløse flere oppgaver eller prosesser på flere databehandlingsressurser. Parallellitet deler en arbeidsmengde inn i mindre oppgaver som kjøres parallelt. Når du kjører logikk parallelt, forbedres ytelsen fordi arbeidsbelastningen er fordelt på flere grener.
Bruk samtidighet. Samtidighet er et systems evne til å kjøre flere oppgaver eller prosesser. Samtidighet gjør det mulig for ulike deler av en arbeidsbelastning å gjøre fremgang uavhengig, noe som kan forbedre den generelle ytelsen.
Samtidig kjøring: Samtidig kjøring gjør at den samme logikken kan kjøre samtidig. Begrensning av samtidig kjøring til én kan føre til serialisering av logikk, noe som resulterer i behandling av ett element om gangen. Kontroll av mengden samtidig kjøring av arbeidsbelastningselementer kan bidra til å styre ressursbruken under behandling. Power Automate-flytløkker kan for eksempel konfigureres til å behandle flere handlinger parallelt ved hjelp av egenskapen Samtidig kontroll.
Notat
Før du aktiverer samtidighet, må du huske på at dette betyr at flere handlinger utføres samtidig – hvis du skriver data som en del av løkken, må du kontrollere at målet for dataene kan håndtere samtidige forespørsler.
Køer: En kø er en lagringsbuffer plassert mellom en forespørrende komponent (produsent) og behandlingskomponenten (forbruker) for arbeidsbelastningen. Det kan være flere forbrukere for en enkelt kø. Etter hvert som oppgavene øker, bør du skalere forbrukerne for å møte etterspørselen. Produsenten plasserer oppgaver i en kø. Køen lagrer oppgavene til en forbruker har kapasitet. En kø er ofte den beste måten å levere arbeid til en behandlingstjeneste som opplever topper i etterspørselen. Hvis du vil ha mer informasjon, kan du se Købasert belastningsutjevningsmønster og Lagringskøer og Service Bus-køer.
Optimaliser bakgrunnsjobber
Mange programmer krever bakgrunnsoppgaver som kjører uavhengig av brukergrensesnittet. Programmet kan starte jobben og fortsette å behandle interaktive forespørsler fra brukere. Eksempler på bakgrunnsjobber inkluderer satsvise jobber, prosessorintensive oppgaver og langvarige prosesser, for eksempel arbeidsflyter. Bakgrunnsoppgaver bør ikke blokkere programmet eller forårsake inkonsekvenser på grunn av forsinket drift når systemet er under belastning. Hvis du vil ha mer informasjon om hvordan du optimaliserer bakgrunnsjobber, kan du se Anbefalinger for utvikling av bakgrunnsjobber.
Tilrettelegging for Power Platform
Instrumenteringskode: Når du bygger lerretsapper, bør effektive mønstre brukes til å forbedre appeffektiviteten, mens antimønstre bør unngås. Hvis du vil ha mer informasjon, kan du se Oversikt over oppretting av effektiv Power Apps. Bruk Monitor i Power Apps til å diagnostisere og feilsøke ytelsesproblemer under utvikling.
Mål engasjement og resultater: Når du bygger agenter, er sporing av samtaleengasjement og resultater avgjørende for å måle agent ytelsesmålinger og oppdage forbedringsområder.
Optimalisere kodelogikk: Med løsningskontrollen kan du utføre en omfattende statisk analysekontroll av løsningene mot et sett med regler for beste fremgangsmåte og raskt finne disse problematiske mønstrene. Med Flytkontroll kan du få innsikt i hvilke områder av flytens implementering som utgjør en ytelsesrisiko.
Bruke samtidighet og parallellitet: Power Automate-skyflyter støtter samtidighet i løkker og utløsere. Vær oppmerksom på at grenser for samtidighet, løkker og oppdeling gjelder og er basert på ytelsesprofilen din. Power Apps støtter samtidighet ved hjelp av funksjonen Samtidig.
Optimalisering av Dataverse-ytelse: Microsoft Dataverse gir et utvidbart rammeverk som gjør det mulig for utviklere å bygge svært tilpasningsbare og skreddersydde opplevelser. Når du tilpasser, utvider eller integrerer med Dataverse, må du være oppmerksom på den etablerte veiledningen og anbefalte fremgangsmåter. Se Anbefalte fremgangsmåter og veiledning når du bruker Microsoft Dataverse.
Relatert informasjon
- Samtidighet, løkker og oppdelingsgrenser i Power Automate
- Produktspesifikk veiledning for optimalisering av Dynamics 365-ytelse
- Ytelsesjustering og optimalisering for kundeengasjementapper
- Oversikt over oppretting av effektiv Power Apps
- Oversikt over Overvåking
- Forbedre ytelsen, stabiliteten og påliteligheten til komponenter med løsningskontrollen
Sjekkliste for ytelseseffektivitet
Se hele settet med anbefalinger.