Jaa


Logiikan optimoimisen suositukset

Koskee tätä Power Platform Well-Architected – suorituskyvyn tehokkuus -tarkistusluetteloa koskevaa suositusta:

PE:06 Käytä suorituskykyistä logiikkaa ja varmista, että se siirtää vastuut ympäristölle. Käytä logiikkaa vain aiottuun tarkoitukseen ja vain tarvittaessa.

Tässä oppaassa kuvataan suositukset koodin ja infrastruktuurin suorituskyvyn optimoinnille. Koodin ja infrastruktuurin optimoimiseksi komponentteja olisi käytettävä vain niiden ydintarkoitukseen ja vain tarvittaessa. Kun käytät koodia ja infrastruktuuria liikaa, se aiheuttaa tarpeetonta resurssien kulutusta, pullonkauloja ja hitaita vastauksia. Näiden tehottomuuksien kompensointi edellyttää resurssien lisäämistä samojen tehtävien suorittamista varten.

Määritelmät

Termi Määritelmä
Samanaikaisuus Kun useita tehtäviä tai prosesseja suoritetaan kerralla, mutta ei välttämättä täsmälleen samanaikaisesti.
Rinnakkaisuus Kun useita tehtäviä tai prosesseja suoritetaan samanaikaisesti.

Tärkeimmät suunnittelustrategiat

Logiikan ja infrastruktuurin optimointi edellyttää logiikan ja sitä tukevan infrastruktuurin hienosäätöä suorituskyvyn tehokkuuden parantamiseksi. Se vaatii suorituskykyistä logiikkaa, joka suorittaa tehtäviä nopeasti eikä tuhlaa resursseja. Se edellyttää hyvin suunniteltua infrastruktuuria, joka on virtaviivaistettu tarpeettoman monimutkaisuuden välttämiseksi. Työkuorman pitäisi käyttää ympäristön luontaisia ominaisuuksia. Tämä lähestymistapa auttaa varmistamaan, että sekä logiikkaa että infrastruktuuria käytetään ensisijaisesti ydintarkoituksiinsa ja vain tarvittaessa.

Optimoi logiikan suorituskyky

Voit optimoida logiikan suorituskyvyn muokkaamalla koodia resurssien käytön vähentämiseksi, suoritusajan minimoimiseksi ja suorituskyvyn parantamiseksi. Voit muokata logiikkaa sovelluksen tai työnkulun tehokkuuden ja nopeuden parantamiseksi. Älä naamioi suorituskykyongelmia raa'alla voimalla. Raaka voima tarkoittaa laskentaresurssien lisäämistä koodin suorituskyvyn kompensoimiseksi, kuten lisäkapasiteetin lisäämistä juurisyyn käsittelemisen sijaan. Suorituskykyongelmat on korjattava optimoinnin avulla. Kun optimoit logiikan suorituskyvyn, se auttaa maksimoimaan järjestelmäresurssien käyttöasteen, parantaa vasteaikaa, vähentää viivettä ja parantaa käyttökokemusta.

Logiikan instrumentointi

Logiikan instrumentointi viittaa käytäntöön, jossa mukautettu tapahtumaloki lisätään tietojen keräämistä ja logiikan suorituskyvyn suorituksenaikaista seurantaa varten. Logiikan instrumentointi antaa kehittäjille mahdollisuuden kerätä tietoja keskeisistä mittareista, kuten suoritusajasta. Instrumentoimalla logiikkaa kehittäjät voivat saada merkityksellisiä tietoja logiikan kuumista poluista, tunnistaa suorituskyvyn pullonkauloja ja optimoida logiikan suorituskyvyn tehostamiseksi.

Ihanteellisesti logiikka-analyysi suoritetaan sovelluskehityksen elinkaaren alkuvaiheessa. Mitä aikaisemmin huomaat logiikkaongelman, sitä halvempaa se on korjata. Kannattaa automatisoida mahdollisimman suuri osa tästä logiikka-analyysistä. Käytä dynaamisia ja staattisia koodianalyysityökaluja manuaalisen työn vähentämiseksi. Esimerkiksi työnkulun tarkistustoiminto voi korostaa logiikan, jonka ei odoteta olevan suorituskykyinen, kuten kysely, jolla ei ole määritettyjä suodatusehtoja. Muista kuitenkin, että tämä testaus on yhä tuotannon simulointi. Tuotanto tarjoaa selkeimmän käsityksen logiikan optimoinnista.

Kompromissi: Logiikan valvontatyökalut todennäköisesti lisäävät kustannuksia.

Tunnista kuumat polut

Instrumentoimalla logiikkaasi voit mitata resurssien kulutusta eri logiikkapoluilla. Nämä mittaukset auttavat sinua tunnistamaan kuumat polut. Kuumilla poluilla on merkittävä vaikutus suorituskykyyn ja resurssien käyttöön. Ne ovat ohjelman kriittisiä tai usein suoritettavia osia, jotka edellyttävät suurta suorituskykyä ja pientä viivettä.

Voit tunnistaa koodin kuumat polut seuraavasti:

  • Analysoi suorituksenaikaisia tietoja: Kerää suorituksenaikaisia tietoja ja analysoi niitä kaikkein eniten aikaa kuluttavien logiikan alueiden tunnistamiseksi. Etsi logiikan malleja tai osia, jotka suoritetaan usein tai joiden suorittaminen kestää kauan.

  • Mittaa suorituskykyä: Käytä profilointityökaluja ja suorituskyvyn testausympäristöä suoritusajan ja resurssin kulutuksen mittaamiseksi erilaisilla logiikkapoluilla. Tämä prosessi auttaa tunnistamaan pullonkauloja ja parannuskohteita. Esimerkiksi Power Appsin Valvonta-kohdan avulla voit hankkia tietoja sovelluksen tapahtumien ja kaavojen toimimisesta, ja käyttää tietoja suorituskyvyn parantamisessa.

  • Ota huomioon liiketoimintalogiikka ja käyttäjän vaikutus: Arvioi erilaisten logiikkapolkujen tärkeys sen perusteella, miten tärkeitä ne ovat sovelluksen toiminnalle ja liiketoiminnan kannalta tärkeille toiminnoille. Määritä, mitkä logiikkapolut ovat ratkaisevia arvon tuottamiseksi käyttäjille tai suorituskykyvaatimusten täyttämiseksi.

Optimoi logiikka

Logiikan optimoinnissa on kyse logiikan rakenteen ja suunnittelun hiomisesta tehtävien suorittamiseksi vähemmillä resursseilla. Parannettu logiikka vähentää tarpeettomia toimintoja. Sen tuloksena on nopeampi suoritus vähäisemmillä resursseilla. Poista logiikkapolusta kaikki tarpeettomat toiminnot, jotka voivat vaikuttaa suorituskykyyn. Priorisoi kuumien polkujen optimointi, jotta saavutat suurimmat suorituskyvyn tehokkuuden parannukset.

Ota logiikan optimoinnissa huomioon seuraavat strategiat:

  • Poista tarpeettomat funktiokutsut: Tarkista logiikka ja tunnista funktiot, jotka eivät ole halutun toiminnan kannalta välttämättömiä ja jotka voivat vaikuttaa suorituskykyyn negatiivisesti. Jos esimerkiksi funktiokutsu suorittaa koodissa aiemmin suoritetun vahvistuksen, voit poistaa tarpeettoman vahvistusfunktiokutsun.

  • Minimoi lokiinkirjaustoiminnot: Lokiin kirjaaminen voi auttaa virheenkorjauksessa ja analyysissä, mutta jos lokiin kirjaamista tehdään liikaa, suorituskyky voi huonontua. Arvioi kunkin lokiin kirjaamisen toiminnon tarpeellisuus ja poista tarpeettomat lokiin kirjaamisen kutsut, jotka eivät ole kriittisiä suorituskyvyn analysoinnin kannalta. Hyvä käytäntö on antaa järjestelmän ottaa kirjaaminen käyttöön ja poistaa se käytöstä, jotta se on tukena virheenkorjauksessa aiheuttamatta tuotannon suorituskykyongelmia.

  • Optimoi silmukat ja ehtolauseet: Analysoi logiikan silmukat ja ehtolauseet sekä tunnista kaikki tarpeettomat iteraatiot ja ehtolauseet, jotka voidaan poistaa. Näiden rakenteiden yksinkertaistaminen ja optimointi voi parantaa koodisi suorituskykyä. Minimoi funktiokutsut silmukoissa ja eliminoi turhat laskutoimitukset. Harkitse laskelmien siirtämistä silmukan ulkopuolelle.

  • Vähennä tarpeetonta tietojen käsittelyä: Tarkista logiikka, jotta löydetään mahdolliset tarpeettomat tietojenkäsittelytoiminnot, kuten laskelmat tai muunnokset. Poista nämä tarpeettomat toiminnot parantaaksesi logiikkasi tehokkuutta. Voit esimerkiksi käyttää Dataversen laskettuja sarakkeita, koontikenttiä ja Power Fx -sarakkeita sen sijaan, että arvo lasketaan koodina ja tallennetaan tallennustoiminnolla.

  • Optimoi tietorakenteet. Voit tallentaa ja noutaa tietoja tehokkaasti valitsemalla sopivat tietorakenteet ja vain pakolliset tietosarakkeet. Valitse paras tietorakenne tietylle ongelmalle. Sopiva tietorakenne parantaa sovelluksen suorituskykyä.

  • Minimoi verkkopyynnöt: Jos logiikkaan liittyy verkkopyyntöjen tekeminen (esimerkiksi yhdistintoiminnon avulla), minimoi pyyntöjen määrä ja optimoi niiden käyttö. Muodosta pyynnöistä mahdollisuuksien mukaan eriä ja vältä tarpeettomia edestakaisia matkoja parantaaksesi suorituskykyä.

  • Pienennä tietorakenteen kokoa: Tarkista tietovaatimukset ja poista tarpeettomat kentät ja ominaisuudet. Optimoi muistin käyttö valitsemalla sopivat tietotyypit ja pakkaamalla tiedot tehokkaasti.

  • Työskentele asynkronisesti: Arvioi, voidaanko työ tehdä logiikassa asynkronisesti synkronisen työn sijaan. Esimerkiksi Power Automate -työnkulku voi käsitellä työn asynkronisesti sen sijaan, että toiminto suoritettaisiin sisäisenä toimintona.

  • Määritä ennen mukauttamista. Käytä sovelluksen vakiokomponentteja, jos voit. Mukautukset, kuten laajennukset ja JavaScript, voivat vaikuttaa suorituskykyyn.

  • Pienennä ohjausobjektit. Näytä lomakkeissa vain tarvittavat kentät – liian suuri määrä kenttiä voi sotkea käyttöliittymän ja vaikuttaa suorituskykyyn. Minimoi ohjausobjektien määrä komentopalkissa, pohjaan perustuvassa sovelluksessa tai mukautetulla sivulla. Vältä valikoimien sisäkkäistä sijoittamista ja liian monen komponentin lisäämistä valikoimaan.

  • Optimoi tietokyselyt. Lataa vain ne tiedot, joita tarvitset sovelluksessa tai työnkulussa. Palvelinpuolen näkymien avulla voit esisuodattaa tietoja rajataksesi ne kyselysi kannalta merkittäviin.

Tutustu käytössä olevan Power Platform -tuotteen suorituskykyä koskeviin suosituksiin. Arvioi logiikkaasi näiden suositusten perusteella tunnistaaksesi parannusta vaativat alueet.

Lue lisätietoja Power Automaten pilvipalvelun koodausohjeista, Power Appsin koodausohjeista ja Power Automaten työpöydän työnkulun koodausohjeista logiikan optimointia varten.

Vinkki

Power CAT Toolkitin avulla voit suorittaa koodikatselmuksia. Työkalupakki sisältää monia tämän dokumentaation koodausohjeita, mikä varmistaa, että ratkaisusi ovat tehokkaita ja ylläpidettäviä. Työkalupakki merkitsee automaattisesti kaikki mallit, jotka eivät noudata näitä parhaita käytäntöjä, jotta voit puuttua mahdollisiin ongelmiin kehitysprosessin varhaisessa vaiheessa. Tämä ennakoiva lähestymistapa parantaa koodisi laatua ja auttaa virtaviivaistamaan tarkistusprosessia, mikä helpottaa korkeiden standardien ylläpitämistä projekteissasi. Power CAT Toolkitin integrointi kehitystyönkulkuun varmistaa, että ratkaisusi on rakennettu vankalle perustalle ja johtaa luotettavampiin ja skaalautuvampiin ratkaisuihin.

Kompromissi: Logiikan ja kuumien polkujen optimoiminen vaatii asiantuntemusta. Logiikan tehottomuuksien tunnistaminen on subjektiivista ja saattaa vaatia erittäin ammattitaitoisia henkilöitä, joita voi olla tarpeen hakea muista tehtävistä.

Samanaikaisuuden ja rinnakkaisuuden käyttäminen

Samanaikaisuuden ja rinnakkaisuuden käyttäminen edellyttää useiden tehtävien tai prosessien suorittamista joko samanaikaisesti tai päällekkäisesti laskentaresurssien tehokkaan käytön varmistamiseksi. Nämä tekniikat lisäävät yleistä käsittelytehoa ja niiden tehtävien määrää, jotka työkuorma kykenee käsittelemään. Kun tehtäviä suoritetaan samanaikaisesti tai rinnakkain, sovelluksen suoritusaika saattaa lyhentyä ja vasteajat kasvaa.

Samanaikaisuus ja rinnakkaisuus jakavat työkuorman tehokkaasti laskentaresurssien kesken. Kun lisäät samanaikaisuutta tai rinnakkaisuutta, ota huomioon vaikutus muihin järjestelmiin, koska saatat ylittää niiden rajat. Esimerkiksi Power Automate -työnkulun samanaikainen silmukka, joka käsittelee kunkin kohteen kerrallaan, voi ylittää silmukan logiikassa käytetyt yhdistimen pyyntörajat.

Käytä rinnakkaisuutta. Rinnakkaisuus on järjestelmän kyky käynnistää samanaikaisesti useita tehtäviä tai prosesseja useilla laskentaresursseilla. Rinnakkaisuus jakaa työkuorman pienempiin tehtäviin, joita suoritetaan rinnakkain. Kun logiikkaa suoritetaan rinnakkain, suorituskyky paranee, koska työkuorma jaetaan useisiin haaroihin.

Käytä samanaikaisuutta. Samanaikaisuus tarkoittaa järjestelmän kykyä suorittaa useita tehtäviä tai prosesseja. Samanaikaisuuden avulla työkuorman eri osat voivat edistyä itsenäisesti, mikä voi parantaa yleistä suorituskykyä.

  • Samanaikainen suoritus: Samanaikainen suoritus mahdollistaa saman logiikan suorittamisen samanaikaisesti. Samanaikaisen suorituksen rajoittaminen yhteen voi johtaa logiikan sarjoittamiseen, jolloin yksi kohde käsitellään kerrallaan. Työkuormien samanaikaisen suorittamisen määrän hallinta voi auttaa hallitsemaan resurssien käyttöä käsittelyn aikana. Esimerkiksi Power Automate -työnkulun silmukat voidaan määrittää käsittelemään useita toimintoja rinnakkain Samanaikainen-ohjausobjektin ominaisuuden avulla.

    Muistiinpano

    Ennen kuin otat samanaikaisuuden käyttöön, muista, että tämä tarkoittaa, että useita toimintoja suoritetaan samanaikaisesti – jos kirjoitat tietoja osana silmukkaa, varmista, että tietojen kohde pystyy käsittelemään samanaikaisia pyyntöjä.

  • Jonot: Jono on tallennustilan puskuri, joka sijaitsee työmäärän pyytävän komponentin (tuottaja) ja käsittelevän komponentin (kuluttaja) välissä. Yhdessä jonossa voi olla useita kuluttajia. Kun tehtävät lisääntyvät, kuluttajat on skaalattava vastaamaan kysyntää. Tuottaja sijoittaa tehtävät jonoon. Jono tallentaa tehtävät, kunnes kuluttajalla on kapasiteettia. Jono on usein paras tapa siirtää töitä käsittelypalveluun, jossa on kysyntähuippuja. Lisätietoja on kohdissa Jonopohjainen kuormituksen tasauskuvio ja Tallennuksen ja palveluväylän jonot.

Taustatöiden optimointi

Monet sovellukset vaativat taustatehtäviä, jotka suoritetaan käyttöliittymästä itsenäisesti. Sovellus voi aloittaa työn ja jatkaa käyttäjien vuorovaikutteisten pyyntöjen käsittelyä. Esimerkkejä taustatöistä ovat erätyöt, paljon suoritintehoa vaativat tehtävät ja pitkäkestoiset prosessit, kuten työnkulut. Taustatehtävien ei pitäisi estää sovellusta tai aiheuttaa epäjohdonmukaisuuksia, jotka johtuvat viivästyneestä toiminnasta järjestelmän ollessa kuormitettuna. Lisätietoja taustatöiden optimoinnista on kohdassa Taustatöiden kehittämistä koskevat suositukset.

Power Platform – avustaminen

Instrumentointikoodi: Pohjaan perustuvien sovellusten luomisen yhteydessä tulee käyttää suorituskykyisiä malleja sovelluksen tehokkuuden parantamiseksi. Toimimattomia malleja tulee välttää. Lisätietoja on Suorituskykyisen Power Appsin luomisen yleiskatsaus. Power Appsin Valvonta-kohdan avulla voit diagnosoida suorituskykyongelmat ja tehdä niistä vianmäärityksen kehityksen aikana diagnosoida ja tehdä vianmäärityksen suorituskykyongelmiin kehityksen aikana.

Mittaa aktiivisuutta ja tuloksia: Kun agentteja luodaan, keskustelun aktiivisuuden ja tulosten seuraaminen on tärkeää agentin suorituskykymittareiden tarkastelemiseksi ja parannusalueiden löytämiseksi.

Koodin logiikan optimoiminen: Ratkaisun tarkistustoiminnon avulla voi tehdä monipuolisen staattisen analyysin, jossa ratkaisun käyttöä verrataan parhaiden käytäntöjen mukaisiin sääntöihin. Tällä tavoin ongelmalliset kohdat havaitaan nopeasti. Saako työnkulun tarkistustoiminnon avulla merkityksellisiä tietoja siitä, mitkä työnkulun toteutuksen alueet sisältävät suorituskykyriskejä?

Samanaikaisuuden ja rinnakkaisuuden käyttäminen: Power Automate -pilvityönkulut tukevat samanaikaisuutta silmukoissa ja käynnistimissä. Huomaa, että samanaikaisuus-, silmukka- ja jakamisrajat ovat voimassa ja perustuvat suorituskykyprofiiliin. Power Apps tukee samanaikaisuutta Samanaikainen-funktion avulla.

Dataversen suorituskyvyn optimoiminen: Microsoft Dataverse sisältää laajennettavan ympäristön, jonka avulla kehittäjät voivat muodostaa erittäin mukautettuja ja räätälöityjä kokemuksia. Kun mukautusta, laajennusta ja integrointia tehdään Dataversen avulla, ota huomioon vakiintuneet ohjeet ja parhaat käytännöt. Katso Parhaat käytännöt ja ohjeet Microsoft Dataversen käyttöön.

Suoritustehokkuuden tarkistuslista

Katso lisätietoja suositusten kokoelmasta.