Patarimai ir geriausia praktika, kaip pagerinti drobės programų efektyvumą

Ankstesniuose straipsniuose išmokote apie vykdymo etapus ir duomenų skambučių srautą, bendruosius lėto efektyvumo šaltinius ir bendras efektyvumo problemas beinutarimusdrobės programose. Galite taip pat gauti naudos pagal tolesnius patarimus ir geriausias praktiktas šiame straipsnyje, kad pagerintumėte savo sukurtų programų veikimą.

Duomenų ryšių ribojimas

Neįtraukite daugiau nei 30 ryšių vienoje programoje. Programos skatina naujus vartotojus prisiregistruoti prie kiekvienos jungties, todėl visos papildomos jungtys prailgina laiką, per kurį programa pradeda veikti. Paleidus programą, kiekvienai jungčiai reikia CPU išteklių, atminties ir tinklo pralaidumo, kai programa prašo duomenų iš to šaltinio.

Galite greitai įvertinti savo programos našumą įjungdami programų kūrėjų įrankius „Microsoft Edge“ arba „Google Chrome“. Bus didesnė tikimybė, kad jūsų programai reikės daugiau nei 15 sek. duomenims pateikti, jei ji dažnai prašys duomenų iš daugiau nei 30 ryšių. Kiekvienas įtrauktas ryšys šiame apribojime skaičiuojamas atskirai, neatsižvelgiant į prijungto duomenų šaltinio tipą — pvz., Microsoft Dataverse ar SQL serverio lenteles, ar sąrašus, sukurtus naudojant „Microsoft Lists“.

Valdiklių skaičiaus ribojimas

Neįtraukite daugiau nei 500 valdiklių vienoje programoje. „Power Apps“ generuoja HTML dokumento objektų modelį, kad atvaizduoti kiekvieną valdiklį. Kuo daugiau valdiklių įtrauksite, tuo daugiau laiko „Power Apps“ reikės generuoti.

Kai kuriais atvejais galite pasiekti tą patį rezultatą ir programą paleisti greičiau, jei naudosite galeriją, o ne atskirą valdiklį. Be to, galite sumažinti valdiklių tipų skaičių tame pačiame ekrane. Kai kurie valdikliai (pvz., PDF žiūryklė, duomenų lentelė ir pasirinktinio įvedimo laukas) susitelkia į didelius vykdymo scenarijus ir juos atvaizduoti trunka ilgiau.

Optimizuokite „OnStart“ ypatybę

Naudokite funkciją „ClearCollect“, kad duomenys būtų saugomi vietoje, jei jie nesikeičia vartotojo seanso metu. Be to, naudokite funkciją Išsamūs duomenys ir įkelkite duomenų šaltinių suskirstysite laiką, kurį programa turi įkelti duomenis per pusę. Daugiau informacijos: Konkuruojanti funkcija „Power Apps“

Nenaudojant funkcijos , ši formulė įkelia kiekvieną iš keturių lentelių po vieną:

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

Tokį elgesį galite patvirtinti savo naršyklės kūrėjų įrankyje, kaip pavaizduota toliau pateiktame vaizde.

Diagrama, vaizduojanti keturis po kito įkeliamas lenteles.

Tą pačią formulę galite įtraukti į funkciją Concurrent, kad sutrumpėtų bendras operacijos laikas:

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

Dėl šio pakeitimo programa iškvietos lenteles lygiagrečiai, kaip pavaizduota toliau pateiktame vaizde.

Diagrama, vaizduojanti keturis po kito įkeliamas lenteles kartu.

Pastaba

Dėl daugiau informacijos apie vykdymo problemas ir sprendimus susijusius su „OnStart“, skaitykite „OnStart“ įvykis turi būti suderintas.

Arbatpinigiai

Rekomenduojame naudoti ypatybę App.StartScreen, nes ji supaprastina programos paleidimą ir padidina programos efektyvumą.

Peržvalgos duomenų saugojimas

Naudokite funkciją Set, kad duomenys iš peržvalgos lentelių būtų saugomi vietoje, kad nebūtų pakartotinai nuskaitomi duomenys iš šaltinio. Šis metodas optimizuoja našumą, jei duomenys nekeičiami seanso metu. Kaip pavaizduota šiame pavyzdyje, duomenys vieną kartą gaunami iš šaltinio, o tada pateikiami vietoje, kol vartotojas uždaro programą.

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

Šis metodas yra naudingesnis tokiems duomenims kaip kontaktinė informacija, numatytosios vertės ar vartotojo informacija, kuri dažnai nekinta. Galite taip pat naudoti šią techniką su Numatytomis ir Vartotojo funkcijomis.

Venkite valdymo priklausomybės tarp ekranų

Siekiant pagerinti veikimą, programos ekranai yra įkeliami į atmintį tik tada, kai jų reikia. Šis optimizavimas gali būti konvertuojamas, jei, pvz., įkeliamas 1 ekranas ir vienoje iš jo formulėse naudojama 2 ekrano valdiklio ypatybė. Dabar prieš parodant 1 ekraną turi būti įkeltas 2 ekranas, kad atitiktų priklausomybę. Įsivaizduokite, kad 2 ekranas priklauso nuo 3 ekrano, kuris priklauso nuo 4 ekrano ir taip toliau. Ši priklausomybių grandinė gali lemti, kad bus įkelta daug ekranų.

Dėl šios priežasties, venkite formulės priklausinių tarp ekranų. Kai kuriais atvejais, galite naudoti bendrą kintamąjį ar rinkinį, kad bendrintumėte informaciją tarp ekranų.

Yra išimtis: ankstesniame pavyzdyje vienas iš 1 ekrano rodymo būdų yra naršymas iš 2 ekrano. Tada, kai bus įkeltas 1 ekranas, 2 ekranas jau bus įkeltas į atmintį. Nereikia jokio papildomo darbo, kad įgyvendintumėte priklausinį ekranui 2 ir dėl to nėra jokio poveikio vykdymui.

Naudojimo perdavimas

Kai įmanoma, naudokite funkcijas, kurios duomenų apdorojimą perduoda duomenų šaltiniui, o ne nuskaito duomenis apdoroti vietiniame įrenginyje. Jei programa turi apdoroti duomenis vietoje, operacijai atlikti reikia daug daugiau apdorojimo galios, atminties ir tinklo pralaidumo, ypač jei duomenų rinkinys yra didelis.

Arbatpinigiai

Norėdami sužinoti apie konkrečių jungčių palaikomas išjungtas funkcijas, eikite į jungties dokumentaciją.

Perduodamų funkcijų pavyzdys: įsivaizduokite, kad ID stulpelis apibrėžtas kaip skaičiaus duomenų tipas sąraše, sukurtame naudojant „Microsoft Lists“. Formulės tolesniame pavyzdyje grąžins tikėtinus rezultatus. Tačiau pirmoji formulė yra išvaloma, o antra – neįskaitoma.

Formulė Deleguojama?
Filter ('List data source', ID = 123 ) Taip
Filter(`List data source', ID ="123") Ne

Kadangi tarkime, kad ID stulpelis apibrėžtas su skaičiaus duomenų tipu, dešinioji reikšmė turėtų būti skaitinis „SharePoint“ kintamas, o ne eilutės kintamasis. Priešingu atveju šis neatitikimas gali suaktyvinti formulės nekonkretų.

Nenuodingų funkcijų naudojimas ir duomenų eilučių sąnašų naudojimas nenuostomose užklausose gali turėti neigiamos įtakos programos rezultatams. Daugiau informacijos: perdavimo drobės programoje supratimas

Uždelsto įkėlimo naudojimas

Įjunkite peržiūros funkciją , kad būtų atidėtas įkėlimas, jei programoje yra daugiau nei 10 ekranų, nėra taisyklių ir daug valdiklių, kurie yra keliuose ekranuose ir yra tiesiogiai susieti su duomenų šaltinis. Jei kuriate tokio tipo programą ir šios funkcijos neįjungiate, programos efektyvumas gali prasvirti, nes valdikliai visuose ekranuose turi būti automatiškai įvedami net ne atviruose ekranuose. Be to, visi programos ekranai turi būti atnaujinti, kai tik pasikeičia duomenų šaltinis, pvz., kai vartotojas įtraukia įrašą.

Darbas su dideliu duomenų rinkiniu

Naudokite duomenų šaltinius ir formules, kuriuos galima perduoti, kad jūsų programos puikiai veiktų, o vartotojai galėtų pasiekti visą reikiamą informaciją ir išvengtumėte neperduodami užklausų duomenų eilučių apribojimo (2000). Duomenų įrašų stulpeliams, kuriuos vartotojai gali ieškoti, filtruoti ar rūšiuoti duomenis, naudokite indeksus stulpeliuose, kaip aprašyta duomenų šaltinių taip kaip SQL serveryje ar „SharePoint“.

Pastaba

Papildomos informacijos apie tai, kaip dėl didelių duomenų rinkinių skirtingose platformose gali kilti dažnai pasitaikančių efektyvumo problemų, perskaitykite informacijos Apie didelius duomenų rinkinius, kurie įkeliami į skirtingas platformas.

Reguliarus programų publikavimas iš naujo

Kūrėjai raginami reguliariai skelbti savo programas. Kadangi platforma nuolat optimizuota ir diegiama, jūsų programa iš naujo ją publikuojant iš naujo konvertuojama į „Power Apps“ naujausias platformos optimizavimo priemones.

Vengimas kartoti tą pačią formulę keliose vietose

Jei kelios ypatybės vykdo tą pačią formulę (ypač jei jos sudėtinės), galite nustatyti ją vieną kartą, o tada kitose nurodyti pirmosios ypatybės išvestį. Pavyzdžiui, nenustatote Rodymo režimo valdiklių ypatybės A, B, C, D, ir E į tą pačią sudėtingą formulę. Vietoj to nustatykite A valdiklio ypatybę DisplayMode kaip sudėtinę formulę, B valdiklio ypatybę DisplayMode nustatykite kaip A valdiklio ypatybės DisplayMode rezultatą ir taip toliau C, D ir E valdiklių atvejais.

Visus teksto įvesties valdiklių DelayOutput įjungimas

Jei turite kelias formules arba taisykles, nurodančias valdiklio Teksto įvestis reikšmę, to valdiklio ypatybę DelayedOutput nustatykite kaip True. To valdiklio Teksto ypatybė bus naujinama tik kai paspaudžiami klavišai greita seka sustoja. Formulės arba taisyklės nebus vykdomos kiek daug kartų ir pagerės programos efektyvumas.

Vengimas naudoti Form.Updates taisyklėse ir formulėse

Jei nuorodos vartotojo įvesties vertė taisyklėje ar formulėje naudojate „Form.Updates“ kintamąjį, jis kartoja formos duomenų korteles ir sukuria įrašą kas kartą. Jei norite, kad programa būtų efektyvesnė, nustatykite ją tiesiai iš duomenų kortelės arba valdiklio reikšmės.

Norėdami pagerinti galerijos efektyvumą, naudokite „DelayItemLoading" ir „Loading" suktuką

Atsižvelgiant į konfigūraciją, galerijos matomų eilučių atvaizdavimas gali užtrukti ilgiau. Efektyvumą galima pagerinti keliais būdais.

  • Šablono supaprastinimas. Pavyzdžiui, galite sumažinti valdiklių skaičių, nuorodas į peržvalgas.
  • Galerijos su sudėtingais šablonais gali gauti naudos iš to, kad DelayItemLoading" nustatytas kaip Teisinga", o LoadingSpinner" nustatytas kaip „LoadingSpinner.Controls“. Šis pakeitimas pagerins tam tikrą laiką, kai laiko atvaizdavimas bus ilgesnis. „DelayItemLoading" taip pat užtruks šablonų atvaizdavimas– visa ekrano dalis taps greitesnė, nes tiek ekranas, tiek galerija ne varžosi dėl išteklių.

Išankstinio programos įkėlimo įjungimas, kad būtų padidintas efektyvumas

Galite pasirinktinai iš anksto įkelti programą, kad padidintumėte efektyvumą.

  1. Prisijunkite prie Power Apps, tada meniu pasirinkite Programos.

  2. Programai, kurią norite bendrinti, pasirinkite Daugiau veiksmų (...), tada pasirinkite Parametrai.

  3. Parametrų skyde perjunkite Iš anksto įkelti programą siekiant padidinti našumą į Taip. Tada programa bus iš anksto įkelta.

Iš anksto įkelti programą, kad būtų padidintas efektyvumas.

  1. Norėdami, kad pakeitimai įsigaliotų į „Teams“ įdėtose programose, dar kartą pašalinkite ir įtraukite programą į „Teams“.

    Pastaba

    Dėl to sukompiliuoti programos ištekliai pasiekiami per neautentifikuotus galinius taškus, kad būtų galima juos įkelti prieš autentifikuojant. Tačiau naudotojai vis tiek gali naudoti programą duomenims per jungtis pasiekti tik baigę autentifikavimą ir autorizavimą. Taip užtikrinama, kad duomenys, kuriuos programa gauna iš duomenų šaltinių, nebus pasiekiami neįgaliotiems naudotojams. Sukompiliuoti programos ištekliai apima "JavaScript" failų rinkinį, kuriame yra tekstas, sukurtas naudojant programos valdiklius (pvz., PCF valdiklius), medijos ištekliai (pvz., vaizdai), programos pavadinimas ir aplinkos URL, kuriame yra programa.

    Apskritai programos turėtų gauti mediją ir informaciją iš duomenų šaltinių per ryšius. Jei prie programos reikia pridėti laikmeną ir informaciją, nesusijusią su ryšiu, ir ji laikoma jautria, galbūt norėsite išjungti šį nustatymą. Atminkite, kad išjungę šį nustatymą vartotojai lauks šiek tiek ilgiau, kol pasieks programą.

Įrenginyje saugomi programos duomenys

Kad vartotojai galėtų greičiau gauti išsamią programos informaciją, kai programa paleidžiama, tam tikri duomenys vietoje saugomi jūsų įrenginyje naršyklės talpykloje. Saugoma informacija apima programos, aplinkos ir ryšio informaciją. Šie duomenys bus saugomi naršyklėje, atsižvelgiant į kiekvienos naršyklės saugyklos apribojimus. Norėdami išvalyti saugomus duomenis, skaitykite kiekvienos naršyklės instrukcijas.

Paskesni veiksmai

Peržiūrėkite programavimo standartus, kad pagerintumėte programos veikimą ir palengvintumėte programų valdymą.

Taip pat žr.

Drobės programos vykdymo etapų ir duomenų iškvietimo srautų supratimas
Dažniausios drobių programų efektyvumo problemos ir jų sprendimai
Bendri lėto vykdymo šaltiniai drobės programai
Dažnos problemos ir jų sprendimai „Power Apps“
„Power Apps” paleisties trikčių diagnostika

Pastaba

Ar galite mums pranešti apie dokumentacijos kalbos nuostatas? Atlikite trumpą apklausą. (atkreipkite dėmesį, kad ši apklausa yra anglų kalba)

Apklausą atliksite per maždaug septynias minutes. Asmeniniai duomenys nėra renkami (privatumo nuostatos).