Saveti i najbolje prakse za poboljšanje performansi aplikacija sa podlogom

U prethodnim člancima ste saznali za faze izvršavanja i tok poziva podataka, uobičajene izvore sporih performansi i uobičajena pitanja i rešenja u vezi sa performansama u aplikacijama sa podlogom. Takođe možete imati koristi ako sledite savete i najbolje prakse u ovom članku da biste poboljšali performanse aplikacija koje kreirate.

Ograničavanje veze podataka

Nemojte dodavati više od 30 veza u jednoj aplikaciji. Aplikacije podstiču nove korisnike da se prijave na svaki konektor, tako da svaki dodatni konektor povećava vreme potrebno za pokretanje aplikacije. Dok se aplikacija pokreće, svaki konektor zahteva resurse procesora, memorije i propusnog opsega mreže kada aplikacija zahteva podatke iz tog izvora.

Performanse aplikacije možete brzo da izmerite tako što ćete uključiti Alatke za programere u programu Microsoft Edge ili Google Chrome dok se pokreće aplikacija. Veoma je verovatno da vašoj aplikaciji treba duže od 15 sekundi da vrati podatke ako često zahteva podatke iz više od 30 veza. Svaka dodata veza se pojedinačno računa u ovom ograničenju, bez obzira na povezani tip izvor podataka – kao što su Microsoft Dataverse ili SQL Server tabele ili liste kreirane u usluzi Microsoft Lists.

Ograničavanje broja kontrola

Nemojte dodavati više od 500 kontrola u jednoj aplikaciji. Power Apps generiše objektni model HTML dokumenta za prikazivanje svake kontrole. Što više kontrola dodate, to je više vremena potrebno usluzi Power Apps da generiše sadržaj.

U nekim slučajevima možete postići isti rezultat i pokrenuti aplikaciju brže ako koristite galeriju umesto pojedinačnih kontrola. Pored toga, možda bi trebalo da smanjite broj tipova kontrola na istom ekranu. Neke kontrole (kao što su PDF pregledač, tabela podataka i kombinovani okvir) povlače velike skripte izvršenja i zahtevaju duže vreme da se prikažu.

Optimizujte svojstvo OnStart

Koristite funkciju ClearCollect da lokalno keširate podatke ako se to ne menja tokom korisničke sesije. Takođe, koristite funkciju Istovremeno za istovremeno učitavanje izvora podataka; ovo može upola smanjiti vreme potrebno za učitavanje podataka. Još informacija: Istovremena funkcija u usluzi Power Apps

Bez funkcije Istovremeno, sledeća formula učitava svaku od četiri tabele jednu po jednu:

ClearCollect( Product, '[SalesLT].[Product]' );
ClearCollect( Customer, '[SalesLT].[Customer]' );
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' );
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )

Ovo ponašanje možete potvrditi u alatkama za programere vašeg pregledača, kao što je prikazano na sledećoj slici.

Dijagram koji prikazuje četiri tabele koje se učitavaju jedna za drugom.

Istu formulu možete zatvoriti u funkciju Concurrent da biste smanjili ukupno vreme koje je operaciji potrebno:

Concurrent( 
    ClearCollect( Product, '[SalesLT].[Product]' ),
    ClearCollect( Customer, '[SalesLT].[Customer]' ),
    ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ),
    ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ))

Ovom promenom aplikacija paralelno preuzima tabele, kao što je prikazano na sledećoj slici.

Dijagram koji prikazuje četiri tabele koje se učitavaju istovremeno.

Napomena

Za više informacija o problemima u vezi performansama i rešenjima povezanim sa OnStart svojstvom, pročitajte potrebno je podešavanje OnStart događaja.

Savet

Preporučujemo korišćenje svojstva App.StartScreen pošto pojednostavljuje pokretanje aplikacija i povećava performanse aplikacije.

Keširanje podataka pronalaženja

Koristite funkciju Set da lokalno keširate podatke iz tabela za pronalaženje kako biste izbegli ponovljeno preuzimanje podataka iz izvora. Ova tehnika optimizuje performanse ako se podaci verovatno neće menjati tokom sesije. Kao što je prikazano u ovom primeru, podaci se jednom preuzimaju iz izvora, a zatim se lokalno referenciraju sve dok korisnik ne zatvori aplikaciju.

Set(CustomerOrder, Lookup(Order, id = “123-45-6789”));
Set(CustomerName, CustomerOrder.Name);
Set(CustomerAddress, CustomerOrder.Address);
Set(CustomerEmail, CustomerOrder.Email);
Set(CustomerPhone, CustomerOrder.Phone);

Ovaj metod je korisniji za podatke kao što su kontakt podaci, podrazumevane vrednosti ili korisničke informacije koje se ne menjaju često. Ovu tehniku takođe možete koristiti sa funkcijama Podrazumevane vrednosti i Korisnik.

Izbegavajte zavisnost kontrola između ekrana

Da bi poboljšali performanse, ekrani aplikacije se učitavaju u memoriju samo po potrebi. Ova optimizacija se može ometati ako se, na primer, učita 1. ekran i jedna od njegovih formula koristi svojstvo kontrole sa 2. ekrana. Sad se mora učitati ekran 2 da bi se ispunio zavisni element pre nego što ekran 1 bude mogao da se prikaže. Zamislite da ekran 2 ima zavisni element na ekranu 3, koji ima drugi zavisni element na ekranu 4, i tako dalje. Ovaj lanac zavisnosti može prouzrokovati učitavanje mnogih ekrana.

Iz tog razloga izbegavajte zavisnosti od formula između ekrana. U nekim slučajevima možete koristiti globalnu promenljivu ili kolekciju za deljenje informacija između ekrana.

Postoji izuzetak: U prethodnom primeru zamislite da je jedini način za prikazivanje 1. ekrana navigacijom sa 2. ekrana. Tada će se 2. ekran već učitati u memoriju kada treba učitati 1. ekran. Nije potreban nikakav dodatni rad da bi se ispunila zavisnost za 2. ekran, pa samim tim nema uticaja na performanse.

Korišćenje delegiranja

Tamo gde je moguće, koristite funkcije koje delegiraju obradu podataka na izvoru podataka umesto preuzimanja podataka na lokalni uređaj za obradu. Ako aplikacija mora da obrađuje podatke lokalno, operacija zahteva mnogo više procesorske snage, memorije i mrežnog propusnog opsega posebno ako je skup podataka velik.

Savet

Da biste saznali više o funkcijama koje je moguće delegirati koje su podržane određenim konektorima, idite na članak dokumentacija za konektor.

Za primer funkcija koje je moguće delegirati, razmotrite kolonu ID definisanu kao tip podataka Broj u listi kreiranoj u usluzi Microsoft Lists. Formule u sledećem primeru će vratiti rezultate kako se očekivalo. Međutim, prvu formulu je moguće delegirati, dok drugu nije moguće delegirati.

Formula Da li može da se delegira?
Filter ('List data source', ID = 123 ) Da
Filter(`List data source', ID ="123") Ne

Pošto pretpostavljamo da je kolona ID u usluzi SharePoint definisan sa tipom podataka Broj, vrednost sa desne strane treba da bude numerička promenljiva umesto promenljive niske. U suprotnom, ta neusklađenost može uticati da formula ne može da se delegira.

Upotreba funkcija koje nije moguće delegirati i neodgovarajućeg ograničenja reda podataka za upite koje nije moguće delegirati može negativno uticati na performanse aplikacije. Još informacija: Objašnjenje delegiranja u aplikaciji sa podlogom

Korišćenje odloženog opterećenja

Uključite funkciju pregleda za odloženo učitavanje ako aplikacija ima više od 10 ekrana, bez pravila i mnoge kontrole koje se nalaze na više ekrana i direktno su povezane sa izvor podataka. Ako napravite ovu vrstu aplikacije i ne omogućite ovu funkciju, performanse aplikacije mogu da trpe jer kontrole na svim ekranima moraju biti popunjene čak i na ekranima koji nisu otvoreni. Takođe, svi ekrani aplikacije moraju se ažurirati kad god se promeni izvor podataka, na primer kada korisnik doda zapis.

Rad sa velikim skupovima podataka

Koristite izvore podataka i formule koje možete delegirati kako biste održavali dobre performanse aplikacija dok korisnici mogu da pristupaju svim potrebnim informacijama, a treba i da izbegavate dostizanje ograničenja broja redova podataka od 2000 za upite koji se ne mogu delegirati. Za kolone za evidentiranje podataka na kojima korisnici mogu pretraživati, filtrirati ili sortirati podatke, koristite indekse na kolonama kako je opisano u izvorima podataka kao što su SQL Server ili SharePoint.

Napomena

Za dodatne informacije o tome kako veliki skupovi podataka mogu dovesti do uobičajenih problema sa performansama na različitim platformama, pročitajte Veliki skupovi podataka polako se učitavaju na različitim platformama.

Redovno ponovo objavljujte aplikacije

Podstičemo proizvođače da redovno objavljuju svoje aplikacije. Pošto se Power Apps platforma kontinuirano optimizuje i primenjuje, vaša aplikacija se ponovo generiše unutra najnovijih optimizacija platforme kada je ponovo objavite.

Izbegavajte ponavljanje iste formule na više mesta

Ako više svojstava pokreće istu formulu (pogotovo ako je ona složena), razmislite o tome da je postavite jednom, a zatim referencirajte izlaz prvog svojstva u kasnijim. Na primer, ne postavljajte svojstvo DisplayMode kontrola A, B, V, G i D na istu složenu formulu. Umesto toga, podesite svojstvo DisplayMode kontrole A na kompleksnu formulu, podesite svojstvo DisplayMode kontrole B na rezultat svojstva DisplayMode kontrole A, i tako redom za kontrole C, D i E.

Omogućavanje DelayOutput na svim kontrolama za unos teksta

Ako imate više formula ili pravila koja referenciraju vrednost kontrole tipa unos teksta, podesite svojstvo DelayedOutput te kontrole na tačno. Svojstvo Tekst te kontrole će se ažurirati tek nakon što se zaustave pritiskani tasteri uneti u brzom nizu. Formule ili pravila neće se pokrenuti toliko puta, a performanse aplikacija će se poboljšati.

Izbegavajte upotrebu Form.Updates u pravilima i formulama

Ako upućujete na vrednost korisničkog unosa u pravilu ili formuli pomoću promenljive Form.Updates, ponavlja se preko svih kartica podataka obrasca i svaki put kreira zapis. Da biste učinili aplikaciju efikasnijom, referencirajte vrednost direktno sa kartice podataka ili vrednosti kontrole.

Koristite DelayItemLoading i okretno dugme učitavanja za poboljšanje performansi u Galeriji

U zavisnosti od konfiguracije, galeriji može trebati više vremena da generiše vidljive redove. Postoji nekoliko načina za poboljšanje performansi.

  • Pojednostavite predložak. Na primer, razmislite o smanjenju broja kontrola, referenci na pretraživanja.
  • Galerije sa složenim predlošcima mogu imati pogodnosti od toga što imaju DelayItemLoading podešen na tačno i LoadingSpinner podešen na LoadingSpinner.Controls. Ova promena će poboljšati iskustvo kada je vreme prikazivanja duže. DelayItemLoading takođe će odložiti prikazivanje predložaka, što će omogućiti da se ostatak ekrana prikaže brže jer se i ekran i galerija ne nadmeću za resurse.

Omogućavanje učitavanje aplikacije unapred za bolje performanse

Možete opcionalno unapred učitati aplikaciju da biste poboljšali performanse.

  1. Prijavite se u Power Apps, a zatim u meniju izaberite Aplikacije.

  2. Izaberite Još radnji (...) za aplikaciju koju želite da delite, a zatim izaberite Postavke.

  3. Na tabli Podešavanja prebacite stavku Unapred učitaj aplikaciju za poboljšane performanse na Da. Aplikacija će se zatim unapred učitati.

Učitavanje aplikacija unapred za bolje performanse.

  1. Da bi promene stupile na snagu za aplikacije ugrađene u Teams, uklonite aplikaciju i dodajte je ponovo u Teams.

    Napomena

    Na taj način se kompajliranim sredstvima aplikacije može pristupiti putem neautorizovanih krajnjih tačaka da bi se omogućilo učitavanje pre potvrde identiteta. Međutim, korisnici i dalje mogu da koriste aplikaciju samo za pristup podacima putem linija spajanja tek kada se potvrda identiteta i autorizacija završe. Ovo ponašanje obezbeđuje da podaci koje aplikacija preuzme iz izvora podataka neće biti dostupni neovlašćenim korisnicima. Prevedena sredstva aplikacije uključuju kolekciju JavaScript datoteka koje sadrže tekst autorizovan u kontrolama aplikacija (kao što su PCF kontrole), sredstva medija (kao što su slike), ime aplikacije i URL adresu okruženja u kojoj se aplikacija nalazi.

    Generalno gledano, aplikacije bi trebalo da preuzimaju medije i informacije iz izvora podataka putem veza. Ako mediji i informacije moraju da se dodaju u aplikaciju, bez dolaska iz veze, a smatra se osetljivim možda ćete želeti da onemogućite ovu postavku. Napomena, onemogućavanje ove postavke će dovesti do toga da korisnici još malo čekaju da pristupe aplikaciji.

Podaci aplikacije uskladišteni na uređaju

Da biste omogućili korisnicima da brže preuzimaju detalje aplikacije kada se aplikacija pokrene, određeni podaci se lokalno skladište na uređaju u kešu pregledača. Uskladištene informacije uključuju detalje o aplikaciji, okruženju i vezi. Ti podaci će ostati uskladišteni u pregledaču na osnovu ograničenja skladištenja svakog pregledača. Da biste obrišli uskladištene podatke, pogledajte uputstva za svaki pregledač.

Sledeći koraci

Pregledajte standarde kodiranja za maksimalno povećanje učinka aplikacija i njihovo lakše održavanje.

Takođe pogledajte

Razumevanje faza izvršavanja aplikacije sa podlogom i toka pozivanja podataka
Uobičajeni problemi i rešenja u vezi sa performansama aplikacije sa podlogom
/Uobičajeni izvori sporih performansi za aplikaciju sa podlogom
Uobičajeni problemi i rešenja za uslugu Power Apps
Rešavanje problema sa pokretanjem za Power Apps

Napomena

Možete li nam reći o svojim željenim postavkama jezika u dokumentaciji? Ispunite kratku anketu. (imajte na umu da je ova anketa na engleskom jeziku)

Anketa će trajati oko sedam minuta. Ne prikupljaju se lični podaci (izjava o privatnosti).