Recomandări pentru optimizarea logicii

Se aplică acestei recomandări privind lista de verificare a eficienței performanței bine concepute: Power Platform

PE:06 Folosește o logică performantă și asigură-te că aceasta deleagă responsabilitățile către platformă. Folosește logica doar în scopul pentru care a fost concepută și doar atunci când este necesar.

Acest ghid descrie recomandările pentru optimizarea performanței codului și a infrastructurii. Pentru a optimiza codul și infrastructura, ar trebui să utilizați componentele doar în scopul lor principal și numai atunci când este necesar. Atunci când utilizezi excesiv codul și infrastructura, acest lucru creează un consum inutil de resurse, blocaje și răspunsuri lente. Pentru a compensa aceste ineficiențe, trebuie să adăugați mai multe resurse pentru a îndeplini aceleași sarcini.

Definiții

Termen Definiție
Concurență Când mai multe sarcini sau procese sunt efectuate simultan, dar nu neapărat în același timp.
Paralelism Când se execută mai multe sarcini sau procese în același timp.

Strategii cheie de design

Optimizarea logicii și a infrastructurii implică reglarea fină a logicii și a infrastructurii de suport pentru a îmbunătăți eficiența performanței. Necesită o logică performantă care execută sarcinile rapid și nu risipește resurse. Necesită o infrastructură bine concepută, eficientizată pentru a evita complexitatea inutilă. O sarcină de lucru ar trebui să utilizeze capacitățile inerente ale platformei. Această abordare ajută la asigurarea că atât logica, cât și infrastructura sunt utilizate în principal în scopurile lor principale și numai atunci când este nevoie.

Optimizați performanța logicii

Pentru a optimiza performanța logicii, modificați codul pentru a reduce utilizarea resurselor, a minimiza timpul de execuție și a îmbunătăți performanța. Puteți modifica logica pentru a îmbunătăți eficiența și viteza unei aplicații sau a unui flux. Nu mascați problemele de performanță cu forța brută. Forța brută înseamnă adăugarea de resurse de calcul pentru a compensa performanța codului, cum ar fi adăugarea de capacitate suplimentară în loc să se adreseze sursa. Trebuie să remediați problemele de performanță cu optimizare. Optimizarea performanței logicii ajută la maximizarea utilizării resurselor sistemului, îmbunătățește timpul de răspuns, reduce latența și îmbunătățește experiența utilizatorului.

Instrumentează-ți logica

Instrumentarea logicii se referă la practica de adăugare a înregistrării personalizate a evenimentelor pentru a colecta date și a monitoriza performanța logicii în timpul execuției. Instrumentația logică permite dezvoltatorilor să adune informații despre indicatori cheie, cum ar fi timpul de execuție. Prin instrumentarea logicii, dezvoltatorii pot obține informații despre căile de acces logice importante, pot identifica blocajele de performanță și pot optimiza logica pentru o eficiență sporită a performanței.

În mod ideal, ar trebui să efectuați analiza logică la începutul ciclului de viață al dezvoltării software. Cu cât observi mai devreme o problemă logică, cu atât este mai ieftin să o rezolvi. Vrei să automatizezi cât mai mult posibil această analiză logică. Folosește instrumente de analiză dinamică și statică a codului pentru a reduce efortul manual. De exemplu, Flow Checker poate evidenția logica care nu este așteptată să fie performantă, cum ar fi o interogare care nu specifică criterii de filtrare. Totuși, rețineți că această testare este totuși o simulare a producției. Producția oferă cea mai clară înțelegere a optimizării logice.

Compromis: Instrumentele de monitorizare logică pot crește costurile.

Identificați căile fierbinți

Prin instrumentarea logicii, puteți măsura consumul de resurse pentru diferite căi logice. Aceste măsurători vă ajută să identificați căile fierbinți. Căile active au un efect semnificativ asupra performanței și utilizării resurselor. Sunt secțiuni critice sau executate frecvent ale unui program care necesită performanță ridicată și latență redusă.

Pentru a identifica căile de cod active, luați în considerare acești pași:

  • Analizați datele de execuție: Colectați date de execuție și analizați-le pentru a identifica zonele logicii care consumă cel mai mult timp. Căutați modele sau secțiuni de logică care sunt executate frecvent sau care necesită mult timp pentru a fi finalizate.

  • Măsurați performanța: Folosiți instrumente de profilare sau cadre de testare a performanței pentru a măsura timpul de execuție și consumul de resurse al diferitelor căi logice. Acest proces ajută la identificarea blocajelor și a domeniilor de îmbunătățire. De exemplu, puteți utiliza Monitor în Power Apps pentru a înțelege mai bine cum funcționează evenimentele și formulele aplicației dvs., astfel încât să puteți îmbunătăți performanța.

  • Luați în considerare logica de business și efectul asupra utilizatorului: Evaluați importanța diferitelor căi logice în funcție de relevanța lor pentru funcționalitatea aplicației sau operațiunile critice de business. Determinați care căi logice sunt cruciale pentru a oferi valoare utilizatorilor sau pentru a îndeplini cerințele de performanță.

Optimizați logica

Optimizarea logicii constă în rafinarea structurii și designului logicii pentru a îndeplini sarcini cu mai puține resurse. Logica îmbunătățită reduce operațiunile inutile. Creează o execuție mai rapidă cu un consum mai mic de resurse. Ar trebui să eliminați orice operații inutile din calea logică care ar putea afecta performanța. Prioritizați optimizarea căilor de acces rapide pentru a obține cele mai mari câștiguri de performanță și eficiență.

Pentru a optimiza logica, luați în considerare următoarele strategii:

  • Eliminați apelurile de funcții inutile Revizuiți-vă logica și identificați orice funcții care nu sunt esențiale pentru funcționalitatea dorită și care ar putea afecta negativ performanța. De exemplu, dacă un apel de funcție efectuează o validare finalizată anterior în cod, puteți elimina apelul de funcție de validare inutil.

  • Minimizarea operațiunilor de înregistrare în jurnal Înregistrarea în jurnal poate fi utilă pentru depanare și analiză, dar înregistrarea excesivă poate afecta performanța. Evaluați necesitatea fiecărei operațiuni de înregistrare în jurnal și eliminați orice apeluri de înregistrare inutile care nu sunt esențiale pentru analiza performanței. O bună practică este să permiteți sistemului să activeze și să dezactiveze înregistrarea în jurnal, pentru a ajuta la depanare, fără a cauza probleme de performanță în producție.

  • Optimizați buclele și condiționalitățile Analizați buclele și condiționalitățile din logica dvs. și identificați orice iterații sau condiții inutile care pot fi eliminate. Simplificarea și optimizarea acestor structuri poate îmbunătăți performanța codului dumneavoastră. Minimizează apelurile de funcții din cadrul buclelor și elimină calculele redundante. Luați în considerare mutarea calculelor în afara buclei.

  • Reduceți procesarea inutilă a datelor Verificați logica pentru orice operațiuni inutile de procesare a datelor, cum ar fi calcule sau transformări redundante. Eliminați aceste operațiuni inutile pentru a îmbunătăți eficiența logicii dumneavoastră. De exemplu, utilizați Dataverse coloane calculate, câmpuri de cumulare sau Power Fx coloane în loc să calculeze valoarea în cod și să o stocheze cu o operațiune de salvare.

  • Optimizați structurile de date. Pentru a stoca și recupera eficient datele, selectați structurile de date adecvate și doar coloanele de date necesare. Alegeți cea mai bună structură de date pentru o anumită problemă. O structură de date adecvată îmbunătățește performanța aplicației.

  • Minimizează solicitările de rețea: Dacă logica ta implică efectuarea de solicitări de rețea (de exemplu, utilizarea unei acțiuni de conector), minimizează numărul de solicitări și optimizează utilizarea acestora. Cereri în lot atunci când este posibil și evitați călătoriile dus-întors inutile pentru a îmbunătăți performanța.

  • Reduceți dimensiunea structurii de date: Revizuiți cerințele privind datele și eliminați orice câmpuri sau proprietăți inutile. Optimizați utilizarea memoriei prin selectarea tipurilor de date adecvate și împachetarea eficientă a datelor.

  • Lucrați asincron: Evaluați dacă, în logica dvs., lucrul ar putea fi efectuat asincron în loc de sincron. De exemplu, în loc să efectuați operațiunea în linie, luați în considerare implementarea unui flux pentru a procesa lucrarea în mod asincron. Power Automate

  • Configurați înainte de personalizare. Folosește componente standard ale aplicației, dacă poți. Personalizările precum plugin-urile și JavaScript pot afecta performanța.

  • Minimizează controalele. Afișați doar câmpurile de care aveți nevoie în formulare - prea multe câmpuri pot aglomera interfața cu utilizatorul și pot afecta performanța. Minimizează numărul de controale din bara de comenzi, aplicația pânză sau pagina personalizată. Evitați imbricarea galeriilor sau adăugarea a prea multor componente într-o galerie.

  • Optimizați interogările de date. Încărcați doar datele de care aveți nevoie într-o aplicație sau într-un flux. Folosește vizualizări pe server pentru a prefiltra datele și a restrânge datele relevante pentru interogarea ta.

Examinați recomandările de performanță specifice produsului cu care lucrați. Power Platform Evaluează-ți logica în raport cu aceste recomandări pentru a identifica domeniile care necesită îmbunătățiri.

Aflați mai multe despre instrucțiunile de codificare a fluxului cloud Power Automate, instrucțiunile de codificare Power Apps și instrucțiunile de codificare a fluxului desktop Power Automate pentru a optimiza logica.

Sfat

Folosește Power CAT Toolkit pentru a efectua revizuiri de cod. Setul de instrumente încorporează multe dintre instrucțiunile de codare din această documentație, asigurându-vă că soluțiile dumneavoastră sunt eficiente și ușor de întreținut. Setul de instrumente semnalează automat orice modele care nu respectă aceste bune practici, astfel încât să puteți aborda potențialele probleme încă de la începutul procesului de dezvoltare. Această abordare proactivă îmbunătățește calitatea codului dvs. și ajută la eficientizarea procesului de revizuire, facilitând menținerea unor standarde ridicate în cadrul proiectelor dvs. Integrarea setului de instrumente Power CAT în fluxul de lucru de dezvoltare asigură construirea soluțiilor pe o fundație solidă și duce la soluții mai fiabile și scalabile.

Compromis: Optimizarea logicii și a căilor de acces rapide necesită expertiză. Identificarea ineficiențelor logice este subiectivă și ar putea necesita persoane cu înaltă calificare, pe care ar putea fi nevoie să le apelați la alte sarcini.

Utilizați concurența și paralelismul

Utilizarea concurenței și paralelismului implică executarea mai multor sarcini sau procese fie simultan, fie într-un mod suprapus, pentru a utiliza eficient resursele de calcul. Aceste tehnici cresc debitul general și numărul de sarcini pe care le poate procesa o sarcină de lucru. Când executați sarcini simultan sau în paralel, acest lucru poate reduce timpul de execuție al aplicației și poate crește timpii de răspuns.

Concurența și paralelismul distribuie eficient volumul de lucru între resursele de calcul. Când creșteți concurența sau paralelismul, luați în considerare impactul asupra altor sisteme, deoarece ați putea depăși limitele acestora. De exemplu, o buclă concurentă într-un flux care procesează fiecare element în același timp ar putea depăși limitele de solicitare ale unui conector utilizat în logica buclei. Power Automate

Folosește paralelismul. Paralelismul este capacitatea unui sistem de a declanșa simultan mai multe sarcini sau procese pe mai multe resurse de calcul. Paralelismul împarte o sarcină de lucru în sarcini mai mici care sunt executate în paralel. Când rulați logica în paralel, performanța se îmbunătățește deoarece volumul de lucru este distribuit pe mai multe ramuri.

Folosește concurența. Concurența este capacitatea unui sistem de a rula mai multe sarcini sau procese. Concurența permite diferitelor părți ale unei sarcini de lucru să progreseze independent, ceea ce poate îmbunătăți performanța generală.

  • Execuție concurentă: Execuția concurentă permite rularea simultană a aceleiași logici. Limitarea execuției concurente la una singură poate avea efectul de serializare a logicii, rezultând în procesarea câte unui element pe rând. Controlul cantității de execuție concurentă a elementelor de sarcină de lucru poate ajuta la gestionarea utilizării resurselor în timpul procesării. De exemplu, buclele de flux Power Automate pot fi configurate pentru a procesa mai multe acțiuni în paralel folosind proprietatea Control concurent.

    Notă

    Înainte de a activa concurența, rețineți că aceasta înseamnă că vor fi efectuate mai multe acțiuni simultan - dacă scrieți date ca parte a buclei, asigurați-vă că destinația datelor poate gestiona solicitări simultane.

  • Cozi: O coadă este un buffer de stocare situat între o componentă solicitantă (producător) și componenta de procesare (consumator) a sarcinii de lucru. Pot exista mai mulți consumatori pentru o singură coadă. Pe măsură ce sarcinile cresc, ar trebui să scalați consumatorii pentru a satisface cererea. Producătorul plasează sarcinile într-o coadă. Coada stochează sarcinile până când un consumator are capacitate. O coadă este adesea cea mai bună modalitate de a transfera munca către un serviciu de procesare care se confruntă cu vârfuri de cerere. Pentru mai multe informații, consultați Model de nivelare a încărcării bazată pe coadă şi Cozi de stocare și cozi Service Bus.

Optimizați joburile în fundal

Multe aplicații necesită sarcini în fundal care rulează independent de interfața cu utilizatorul. Aplicația poate porni jobul și poate continua să proceseze cererile interactive de la utilizatori. Exemple de joburi în fundal includ joburi în lot, sarcini care solicită mult procesorul și procese care rulează de lungă durată, cum ar fi fluxurile de lucru. Sarcinile din fundal nu ar trebui să blocheze aplicația sau să provoace inconsistențe din cauza funcționării întârziate atunci când sistemul este sub sarcină. Pentru mai multe informații despre optimizarea joburilor în fundal, consultați Recomandări pentru dezvoltarea de locuri de muncă în background.

Power Platform facilitare

Cod de instrumentare Atunci când se construiesc aplicații canvas, ar trebui utilizate modele performante pentru a îmbunătăți eficiența aplicației, în timp ce anti-modelele ar trebui evitate. Pentru mai multe informații, consultați Prezentare generală a creării de materiale performante Power Apps. Folosiți Monitor în Power Apps pentru a diagnostica și depana problemele de performanță în timpul dezvoltării.

Măsurarea implicării și a rezultatelor: Atunci când se construiesc agenți, urmărirea implicării conversației și rezultatelor este esențială pentru măsurarea indicatorilor de performanță ai agenților și descoperirea domeniilor de îmbunătățire.

Optimizarea logicii codului: Cu funcția de verificare a soluțiilor , puteți efectua o verificare statică complexă a soluțiilor dvs. în raport cu un set de reguli de bune practici și puteți identifica rapid modelele problematice. Cu Flow Checker, puteți obține informații despre care domenii ale implementării fluxului dvs. prezintă un risc de performanță?

Utilizarea concurenței și paralelismului: Power Automate fluxurile în cloud acceptă concurența în bucle și declanșatoare. Rețineți că se aplică limite de concurență, buclare și debatching și se bazează pe profilul dvs. de performanță. ... Power Apps suportă concurența folosind funcția Concurrent .

Optimizarea Dataverse performanței: Microsoft Dataverse oferă un cadru extensibil care permite dezvoltatorilor să construiască experiențe extrem de personalizate și adaptate. Când personalizați, extindeți sau integrați cu Dataverse, fiți conștienți de îndrumările și cele mai bune practici stabilite. Consultați Cele mai bune practici și îndrumări privind utilizarea Microsoft Dataverse.

Listă de verificare a eficienței performanței

Consultați setul complet de recomandări.