Näpunäiteid ja parimaid tavasid lõuendirakenduste jõudluse parendamiseks

Eelmistes artiklites olete teada saanud levinumatest käivitamisfaasidest ja andmenõudluse voost, levinumatest aeglase jõudluse allikatest ja levinumatest jõudluse probleemidest ja lahendusest lõuendirakendustes. Selle artikli näpunäiteid ja parimaid tavasid saate kasutada ka oma loovrakenduste jõudluse suurendamiseks.

Andmeühenduste piiramine

Ärge lisage ühte rakendusse üle 30 ühenduse. Rakendused paluvad uutel kasutajatel igasse konnektorisse sisse logida, seega iga lisa konnektor suurendab rakenduse käivitamiseks vajaminevat aega. Rakenduse töötamise ajal vajab iga konnektor CPU ressursse, mälu ja võrgu läbilaskevõimet, kui rakendus taotleb selle allika andmeid.

Saate oma rakenduse jõudlust kiiresti mõõta, kui lülitate sisse Developer Toolsi Microsoft Edge’is või Google Chrome’i kui käivitate rakendust. Teie rakendusel kulub tõenäoliselt andmete tagastamiseks kauem kui 15 sekundit, kui taotlete sageli andmeid enamast kui 30 andmeallikast. Iga lisatud ühendust arvestatakse selle piirangu all eraldi, olenemata ühendatud andmeallika tüübist—nagu Microsoft Dataverse või SQL Serveri tabelid või Microsofti loendite abil loodud loendid.

Juhtelementide arvu piiramine

Ärge lisage ühte rakendusse üle 500 juhtelemendi. Power Apps genereerib HTML-dokumendi objektimudeli iga juhtelemendi renderdamiseks. Mida rohkem te juhtelemente lisate, seda rohkem genereerimise aega Power Apps vajab.

Mõnel juhul saate saavutada sama tulemuse ja lasta rakendusel kiiremini käivitada, kui kasutate üksikute juhtelementide asemel galeriid. Lisaks võite soovida vähendada samal ekraanil olevate juhtelementide tüüpide arvu. Teatud juhtelemendid (nt PDF-i vaatur, andmetabel ja liitväli) tõmbavad suuri käivitusskripte ja neil kulub renderdamiseks rohkem aega.

Atribuudi OnStart optimeerimine

Kasutage ClearCollect funktsiooni salvestamaks andmed kohalikku vahemällu kui see ei muutu kasutussessiooni käigus. Samuti, kasutadge Samaaegset funktsiooni et laadida andmeallikatest simultaanselt; see võib vähendada aega, mida rakendus vajab, et laadida andmeid poole võrra. Lisateave: Samaaegne funktsioon Power Apps

Ilma Samaaegselt funktsioonita laadib järgmine valem kõik neli tabelit ükshaaval.

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

Seda käitumist saate kinnitada brauseri arendustööriistades, nagu on näidatud järgmisel pildil.

Diagramm, kus on näidatud, et neli tabelit laaditakse üksteise järel.

Võite toimingu jaoks vajaliku üldise aja vähendamiseks kaasata sama valemi funktsioonis Samaaegne.

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

Selle muudatusega toob rakendus tabelid paralleelselt, nagu on näidatud järgmisel pildil.

Diagramm, kus on näidatud, et neli tabelit laaditakse korraga.

Märkus

Lisateavet OnStart-iga seotud jõudlusprobleemide ja -lahenduste kohta leiate teemast OnStart-sündmus vajab häälestamist.

Näpunäide

Soovime kasutada atribuuti App.StartScreen, kuna see lihtsustab rakenduse käivitamist ja parandab selle jõudlust.

Vahemälu otsinguandmed

Kasutage funktsiooni Määra, et salvestada otsingutabelite andmed kohapeal vahemällu, et vältida andmete korduvat toomist allikast. See meetod optimeerib jõudlust, kui andmed tõenäoliselt seansi ajal ei muutu. Nagu näidatud järgnevas näites, on andmed allikast toodud korra ja siis viidatud kohalikult kuni kasutaja sulgeb rakenduse.

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

See meetod on kasulikum näiteks kontaktteabe, vaikeväärtuste või kasutajateabe puhul, mida sageli ei muudeta. Seda meetodit saate kasutada ka funktsioonidega vaikesätted ja kasutaja.

Ekraanide vahelise kontrollisõltuvuse äratundmine

Jõudluse parandamiseks laaditakse rakenduse ekraanid mälusse ainult vastavalt vajadusele. See optimeerimine võib olla ülekoormatud, kui näiteks ekraani 1 laaditakse ja üks selle valemitest kasutab ekraanilt 2 juhtelemendi atribuuti. Nüüd tuleb enne ekraani 1 kuvamist laadida sõltuvuse täitmiseks ekraan 2. Kujutage ette, et ekraanil 2 on sõltuvus ekraaniga 3, millel on omakorda sõltuvus ekraanil 4 jne. See sõltuvuse kett võib põhjustada paljude ekraanide laadimist.

Seetõttu vältige valemite sõltuvust ekraanide vahel. Mõnel juhul saate kasutada teabe ekraanide vahel jagamiseks kasutada globaalset muutujat või kogumit.

On üks erand: Kujutage eelmises näites ette, et ainuke viis ekraani 1 kuvamiseks on navigeerida ekraanilt 2. Siis on ekraan 2 juba mälus laaditud, kui ekraani 1 laaditakse. 2. ekraani sõltuvuse täitmiseks ei ole vaja täiendavat tööd ja seetõttu ei ole sel jõudlusele mingit mõju.

Delegeerimise kasutamine

Võimaluse korral kasutage funktsioone, mis andmete töötlemiseks kohalikku seadmesse toomise asemel delegeerivad andmete töötlemise andmeallikale. Kui rakendus peab andmeid töötlema kohalikku arvutisse, nõuab toiming palju rohkem töötlemisvõimsust, mälu ja võrgu läbilaskevõimet, eriti kui andmehulk on suur.

Näpunäide

Konkreetsete toetatud eraldusfunktsioonide kohta leiate teavet konnektori dokumentatsioonist.

Näitena delegeeritavate funktsioonide kohta vaadake veergu ID, mis on määratletud teenusega Microsoft Lists loodud loendis andmetüübina Arv. Järgmises näites toodud valemid tagastavad tulemused eeldatud viisil. Esimene valem on eraldatav, kui teine on mitteeraldatav.

Valem Kas on eraldatav?
Filter ('List data source', ID = 123 ) Ja
Filter(`List data source', ID ="123") Ei

Kuna eeldame, et ID veerg SharePoint `ìs on määratletud andmetüübiga Arv, peaks parempoolne väärtus olema stringi muutuja asemel arvuline muutuja. Vastasel juhul võib selline mittevastavus põhjustada valemi mitteeraldatavana.

Mitteeraldatavate funktsioonide kasutamine ja ebasobivate andmeridade limiit mitteeraldatavates päringutes võib olla ebasoodne mõju rakenduse jõudlusele. Lisateave: Mõista delegeerimist lõuendirakendusse

Viivitusega laadimise kasutamine

Lülitage eelvaatefunktsioon hilinenud laadimise korral sisse , kui teie rakendusel on rohkem kui 10 kuva, reegleid pole ja palju juhtelemente, mis asuvad mitmel ekraanil ja on otseselt seotud andmeallikas. Kui koostate seda tüüpi rakendust ja ei luba seda funktsiooni, võib rakenduse jõudlus kannatada, sest ekraanide juhtelemendid peavad olema asustatud isegi ekraanidel, mis pole avatud. Samuti tuleb kõiki rakenduse ekraane värskendada iga kord, kui andmeallikas muutub, näiteks kui kasutaja lisab kirje.

Töö suurte andmehulkadega

Kasutage andmeallikaid ja valemeid, mida rakenduse hästi toimimise säilitamiseks delegeerida, samal ajal kui kasutajad pääsevad ligi kogu vajalikule teabele, ja vältige mitte delegeeritavatel päringutel andmeridade piirarvuni 2000 jõudmist. Nende andmekirjete veergudes, mille andmeid kasutajad saavad otsida, filtreerida või sortida, kasutage andmeallikate nagu näiteks SQL Server või SharePoint.

Märkus

Lisateavet selle kohta, kuidas mahukad andmekomplektid võivad põhjustada levinumaid jõudlusprobleeme erinevatel platvormidel, lugege Mahukad andmekomplektid laadivad aeglaselt erinevatele platvormidele.

Rakenduste regulaarne taasavaldamine

Tegijad julgustavad oma rakendusi regulaarselt avaldama. Kuna Power Apps platvorm on pidevalt optimeeritud ja juurutatud, on teie rakendus uuesti loodud värskeidma platvormi optimeerimisfunktsioonis selle uuesti avaldamisel.

Sama valemi mitmes kohas kordamise vältimine

Kui mitu atribuuti käitavad sama valemit (eriti kui see on keerukas), kaaluge selle üks kord häälestamist ja seejärel järgmistes viitamist esimese atribuudi väljundile. Näiteks ärge häälestage juhtelementide A, B, C, D ja E atribuuti Kuvarežiim samale keerulisele valemile. Selle asemel häälestage juhtelemendi A atribuut Kuvarežiim keerulisele valemile, häälestage juhtelemendi B Kuvarežiim elemendi A atribuudi Kuvatõmmis tulemustele jne C, D ja E jaoks.

Väljundi viivituse lubamine kõikides tekstisisestuse juhtelementides

Kui teil on mitu valemit või reeglit, mis viitavad juhtelemendi Tekstisisend väärtusele, määrake selle juhtelemendi atribuut DelayedOutput (Viivitusega väljund) väärtusele tõene. Juhtelemendi Tekst väärtusi värskendatakse alles pärast seda, kui klahvivajutused on kiiresti sisestatud. Valemid või reeglid ei tööta nii mitu korda ja rakenduse jõudlus paraneb.

Reeglites ja valemites muutuja Form.Updates kasutamise vältimine

Kui viitate kasutaja sisendväärtusele reeglis või valemis kasutades Form.Updates muutujat, itereerib see kõik vormi andmekaardid ja loob iga kord kirje. Rakenduse tõhusamaks muutmiseks viidake andmekaardilt või juhtelemendi väärtusest andmekaardile otse.

Kasuta DelayItemLoading ja Loading masti galerii jõudluse parendamiseks

Sõltuvalt konfiguratsioonist võib galerii nähtavate ridade renderdamine võtta rohkem aega. Jõudluse parendamiseks on paar võimalust.

  • Lihtsusta malli. Näiteks kaaluge juhtelementide arvu ja viidete arvu otsingutele.
  • Keerukate mallidega galeriid saavad kasu sellest, et DelayItemLoading on tõene ja LoadingSpinner väärtuseks on seatud LoadingSpinner.Controls. See muudatus muudab aja pikemaks muutmise korral rohkem üleliidse kogemuse. DelayItemLoading lükkab ka edasi mallide renderdamise, mis võimaldab ülejäänud ekraanil renderdada kiiremini, kuna nii kuva kui ka galerii ei võistle ressursside pärast.

Lubage parema jõudluse tagamiseks rakenduse eellaadimine

Soovi korral saate oma rakenduse jõudluse suurendamiseks eellaadida.

  1. Logige sisse rakendusse Power Apps ja seejärel valige menüüst Rakendused.

  2. Valige rakenduse puhul, mida soovite jagada, suvand Veel toiminguid (...) ja seejärel Sätted.

  3. Sätete paanil lülitage valik Preload app for enhanced performance (Eellaadi rakendus täiustatud jõudluse tagamiseks) väärtusele Yes (Jah). Seejärel toimub rakenduse eellaadimine.

Eellaadi rakendus täiustatud jõudluse jaoks.

  1. Muudatuste jõustumiseks Teamsile manustatud rakenduste puhul eemaldage rakendus ja lisage see uuesti Teamsi.

    Märkus

    See muudab kompileeritud rakenduse varad autentimata lõpp-punktide kaudu juurdepääsetavaks, et võimaldada nende laadimine enne autentimist. Kuid kasutajad saavad teie rakendust konnektorite kaudu andmetele juurdepääsemiseks kasutada alles pärast autentimise ja autoriseerimise lõpuleviimist. Selline käitumine tagab, et andmed, mida rakendus andmeallikatest toob, ei ole volitamata kasutajatele saadaval. Kompileeritud rakenduse varad hõlmavad JavaScripti failide kogumit, mis sisaldab rakenduse juhtelementides (nt PCF-juhtelementides), meediumivarasid (nt pilte), rakenduse nime ja keskkonna URL-i, kus rakendus asub.

    Üldiselt peaksid rakendused tooma meediume ja teavet andmeallikatest ühenduste kaudu. Kui meedium ja teave tuleb rakendusse lisada ühendusest tulemata ja seda peetakse tundlikuks, võiksite selle sätte keelata. Pange tähele, et selle sätte keelamine toob kaasa selle, et kasutajad ootavad rakendusele juurdepääsu veidi kauem.

Teie seadmesse salvestatud rakenduse andmed

Selleks et kasutajad saaksid rakenduse käivitamisel rakenduse üksikasjad kiiremini alla laadida, salvestatakse teatud andmed teie seadmesse brauseri vahemälus. Salvestatud teave hõlmab rakenduse, keskkonna ja ühenduse üksikasju. Need andmed salvestatakse brauserisse vastavalt iga brauseri salvestuslimiitidele. Salvestatud andmete kustutamiseks vaadake iga brauseri juhiseid.

Järgmised toimingud

Rakenduse jõudluse maksimeerimiseks ja rakenduste hoolduse lihtsustamiseks vaadake läbi kodeerimise standardid.

Vt ka

Lõuendirakenduse käivitamisfaaside ja andmevoo mõistmine
Levinud jõudlusprobleemid ja lahendused
Levinumad allikad lõuendirakenduse väheses jõudluses
Levinud probleemid ja lahendused Power Apps jaoks
Käivitamisprobleemide tõrkeotsing Power Apps

Märkus

Kas saaksite meile dokumentatsiooniga seotud keele-eelistustest teada anda? Osalege lühikeses uuringus. (Uuring on ingliskeelne.)

Uuringus osalemine võtab umbes seitse minutit. Isikuandmeid ei koguta (privaatsusavaldus).