Padomi un ieteikumi pamatnes programmu veiktspējas uzlabošanai

Iepriekšējos rakstos apguvāt informāciju par izpildes rezultātiem un datu zvanu plūsmu, biežāk izplatītajiem lēnas veiktspējas avotiem un biežāk izplatītajām veiktspējas problēmām un atrisinājumiem audekla programmās. Priekšrocības varat gūt arī, ievērojot šajā rakstā sniegtos padomus un prakses, lai uzlabotu jūsu izveidoto lietotņu veiktspēju.

Datu savienojumu ierobežošana

Nepievienojiet vairāk par 30 savienojumiem vienā lietotnē. Programmas piedāvā jauniem lietotājiem pieteikties katrā savienotājā, tāpēc katrs papildu savienotājs palielina laiku, kas nepieciešams programmas startēšanai. Kad tiek palaista programma, katram savienotājam nepieciešami CPU resursi, atmiņa un tīkla joslas platums, kad programma pieprasa datus no šī avota.

Palaižot programmu, varat ātri novērtēt savas programmas veiktspēju, ieslēdzot izstrādātāja rīkus programmā Microsoft Edge vai Google Chrome. Jūsu lietotnei, visticamāk, būs nepieciešamas vairāk nekā 15 sekundes, lai atgrieztu datus, ja tā bieži pieprasīs datus no vairāk nekā 30 savienojumiem. Katrs pievienotais savienojums šajā ierobežojumā tiek uzskaitīts atsevišķi neatkarīgi no pievienotā datu avots tipa—, piemēram Microsoft Dataverse, SQL Server tabulām, vai sarakstiem, kas izveidoti, izmantojot Microsoft sarakstus.

Vadīklu skaita ierobežošana

Nepievienojiet vairāk par 500 vadīklām vienā programmā. Power Apps ģenerē HTML dokumenta objektu modeli, lai atveidotu katru vadīklu. Jo vairāk vadīklu tiek pievienots, jo lielākas ir ģenerēšanas laika Power Apps vajadzības.

Dažos gadījumos varat iegūt tādu pašu rezultātu un palaist programmu ātrāk, ja izmantojat galeriju, nevis atsevišķas vadīklas. Turklāt, iespējams, vēlēsities samazināt vadīklu tipu skaitu tajā pašā ekrānā. Dažas vadīklas (piemēram, PDF skatītājs, datu tabula un kombinētais lodziņš) izvelk lielus izpildes skriptus un patērē vairāk laika, lai atveidotu.

Rekvizīta OnStart optimizēšana

Izmantojiet funkciju ClearCollect, lai dati tiktu kešoti lokāli, ja tas netiek mainīts lietotāja sesijas laikā. Tāpat izmantojiet apdudāvāšanas funkciju Vienlaikus, lai datu avotus ielādētu vienlaikus; tas var samazināt laiku, kas programmai nepieciešams, lai ielādētu datus uz pusēm. Papildinformācija: Vienlaicīgā funkcija Power Apps

Bez funkcijas Vienlaikus šī formula ielādē katru no četrām tabulām pa vienai:

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

Šo uzvedību varat apstiprināt pārlūkprogrammas izstrādātāja rīkos, kā parādīts šajā attēlā.

Shēma, kurā parādītas četras tabulas, kas tiek ielādētas vienu pēc otras.

To pašu formulu var iekļaut Concurrent funkcijā, lai saīsinātu kopējo operācijas vajadzībām nepieciešamo laiku:

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

Ja šī izmaiņa ir mainīta, lietojumprogramma paralēli atsaitē tabulas, kā tas parādīts nākamajā attēlā.

Shēma, kurā parādītas četras tabulas, kas tiek ielādētas vienlaikus.

Piezīme

Lai iegūtu papildinformāciju par veiktspējas problēmām un atrisinājumu saistībā ar OnStart, lasiet OnStart notikums ir jāpielāgo.

Padoms

Ieteicams izmantot app.StartScreen rekvizītu, jo tas vienkāršo lietotnes palaišanu un uzlabo lietojumprogrammas veiktspēju.

Kešatmiņas uzmeklēšanas dati

Izmantojiet funkciju Iestatīt, lai no uzmeklēšanas tabulām ierakstītu kešatmiņā datus, neļaujot atkārtoti izgūt datus no avota. Izmantojot šo paņēmienu, tiek optimizēta veiktspēja, ja dati sesijas laikā, visticamāk, netiks mainīti. Kā norādīts šajā piemērā, dati tiek izgūti no avota vienreiz un pēc tam uz tiem atsaucas lokāli, līdz lietotājs aizver lietotni.

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

Šī metode noder vairāk tādiem datiem kā kontaktinformācija, noklusējuma vērtības vai lietotāja informācija, kas bieži nemainās. Šo metodi var izmantot arī ar funkcijām Noklusējums un Lietotājs.

Izvairīšanās no vadīklu atkarības starp ekrāniem

Lai uzlabotu veiktspēju, programmas ekrāni tiek ielādēti atmiņā tikai pēc nepieciešamības. Šo optimizāciju var traucēt, ja, piemēram, tiek ielādēts 1. ekrāns un viena no tās formulām izmanto vadīklas rekvizītu no 2. ekrāna. Tagad 2. ekrāns ir jāielādē, lai izpildītu atkarību pirms 1. ekrāna parādīšanas. Iedomājieties, 2. ekrānam ir atkarība 3. ekrānā, kam ir cita atkarība 4. ekrānā un tā tālāk. Šī atkarības ķēde var izraisīt daudzu ekrānu ielādes.

Šī iemesla dēļ nelietojiet formulu atkarības starp ekrāniem. Dažos gadījumos var izmantot globālo mainīgo vai kolekciju, lai koplietotu informāciju starp ekrāniem.

Pastāv izņēmums: Iepriekšējā piemērā iedomājieties, ka vienīgais veids, kā parādīt 1. ekrānu, ir navigācijā no 2. ekrāna. Pēc tam, ielādējot 1. ekrānu, 2. ekrāns jau būs ielādēts. Lai izpildītu 2. ekrāna atkarību, nav nepieciešams papildu darbs, tādēļ tas neietekmē veiktspēju.

Lietošanas deleģēšana

Ja iespējams, izmantojiet funkcijas, kas deleģē datu apstrādi datu avotam, nevis izgūst datus lokālajā ierīcē apstrādei. Ja lietojumprogrammai ir lokāli jāapstrādā dati, operācijai ir nepieciešams daudz vairāk apstrādes jaudas, atmiņas un tīkla joslas platuma, jo īpaši, ja datu kopa ir liela.

Padoms

Informāciju par deleģējamām funkcijām, kas tiek atbalstītas konkrētos savienotājos, skatiet savienotāja dokumentācijā.

Deleģējamo funkciju piemērā apsveriet ID kolonnu, kas definēta kā datu tips Skaitlis sarakstā, kas izveidots, izmantojot Microsoft sarakstus. Nākamajā piemērā norādītās formulas atgriezīs rezultātus, kā paredzēts. Taču pirmo formulu var deleģēt, savukārt otro nevar.

Formula Deleģējama?
Filter ('List data source', ID = 123 )
Filter(`List data source', ID ="123")

Tā kā mēs pieņemam, ka kolonna ID SharePoint ir definēta ar Skaitļa datu tipu, labās puses vērtībai ir jābūt skaitliski mainīgajam, nevis virknes mainīgajam. Pretējā gadījumā šī neatbilstība var izraisīt formulas deaktivizēšanu.

Izmantot Nevēlamu funkciju un nepiemērotu datu rindu ierobežojumu izmantošana nedeleģējamiem vaicājumiem var ietekmēt programmas veiktspēju. Papildinformācija: Izpratne par deleģēšanu pamatnes programmā

Aizkavētas ielādes lietošana

Ieslēdziet eksperimentālo līdzekli, kas paredzēts ielādēšanas nolūkos, ja jūsu programmā ir vairāk nekā 10 ekrāni, nav kārtulu un ir daudzas vadīklas, kas atrodas vairākos ekrānos un ir tieši saistītas ar datu avotu. Ja veidojat šāda veida programmu un neiespējojat šo līdzekli, programmas veiktspēja var tikt ietekmēta, jo visu ekrānu vadīklām jābūt aizpildītām pat ekrānos, kas nav atvērti. Turklāt visi programmas ekrāni ir jāatjaunina ikreiz, kad tiek veiktas datu avota izmaiņas, piemēram, kad lietotājs pievieno kādu ierakstu.

Darbs ar lielām datu kopām

Izmantojiet datu avotus un formulas, ko var deleģēt, lai nodrošinātu, ka jūsu programmas darbojas labi, bet lietotāji var piekļūt visai informācijai, kas viņiem nepieciešama, un izvairīties no 2000. gada datu rindu ierobežojuma noteikšanas nedeleģējamiem vaicājumiem. Datu ierakstu kolonnām, kurās lietotāji var meklēt, filtrēt vai kārtot datus, izmantojiet indeksus kolonnās, kā aprakstīts datu avotos, piemēram, SQL Server vai SharePoint.

Piezīme

Lai iegūtu papildinformāciju par to, cik lielas datu kopas var izraisīt bieži izplatītas veiktspējas problēmas dažādās platformās, izlasiet rakstu Lielu datu kopu lēna ielādēšana dažādās platformās.

Programmu regulāra atkārtota publicēšana

Veidotājiem tiek ieteikts regulāri publicēt savas programmas. Tāpēc kā Power Apps platforma ir pastāvīgi optimizēta un izvietota, jūsu lietotne tiek atjaunota jaunākajās platformas optimizācijās, kad to atkārtoti publicējat.

Izvairīšanās no vienas un tās pašas formulas atkārtošanās vairākās vietās

Ja vairāki rekvizīti izpilda to pašu formulu (īpaši tad, ja tā ir sarežģīta), apsveriet iespēju to iestatīt vienreiz un pēc tam, atsaucoties uz pirmā rekvizīta izvadi, nākamajos parametros. Piemēram, neiestatiet DisplayMode vadīklas A, B, C, D un E rekvizītu saliktajai formulai. Tā vietā iestatiet A DisplayMode rekvizītu saliktajai formulai, iestatiet B DisplayMode rekvizīta A rezultātam, kas ir DisplayMode rekvizīta rezultāts, un tā tālāk elementiem C, D un E.

DelayOutput iespējošana visām teksta ievades vadīklām

Ja jums ir vairākas formulas vai kārtulas, kas atsaucas uz vadīklas Teksta ievade vērtību, iestatiet DelayedOutput vadīklas rekvizītu uz true. Šīs vadīklas Teksta rekvizīts tiks atjaunināts tikai pēc tam, kad ātri pēc kārtas ievadītie taustiņsitieni būs apstājušies. Formulas vai kārtulas netiks palaistas tik bieži, un programmu veiktspēja tiks uzlabota.

Izvairīšanās no Form.Updates lietošanas kārtulās un formulās

Ja kārtulā vai formulā atsaucaties uz lietotāja ievades vērtību, izmantojot Form.Updates mainīgo, tā atkārtojas visās veidlapas datu kartēs un katru reizi izveido ierakstu. Lai padarītu programmu efektīvāku, norādiet vērtību tieši no datu kartes vai kontrolvērtības.

Atkarībā no konfigurācijas galerijai var būt nepieciešams vairāk laika, lai atveidotu redzamās rindas. Ir pāris veidi, kā uzlabot veiktspēju.

  • Vienkāršojiet veidni. Piemēram, apsveriet iespēju samazināt vadīklu skaitu, atsauces uz uzuzmeklēšanu.
  • Galerijas ar sarežģītām veidnēm var izmantot, iestatot DelayItemLoading uz true un LoadingSpinner uz LoadingSpinner.Controls. Šīs izmaiņas uzlabos uztveri, kad atveidošanas laiks būs garāks. DelayItemLoading arī atveidos veidnes, kas ļauj pārējās ekrāna daļas atveidot ātrāk, jo gan ekrāns, gan galerija nesacenšas par resursiem.

Nākamās darbības

Pārskatiet kodēšanas standartus programmu veiktspējas maksimizēšanai un programmu uzturēšanas atvieglošanai.

Skatiet arī

Pamatnes programmas izpildes fāžu un datu izsaukumu plūsmas saprašana
Biežāk izplatītās pamatnes programmas veiktspējas problēmas un risinājumi
Bieži izplatīti lēnas veiktspējas iemesli audekla programmā
Biežākās problēmas un to risinājumi lietojumprogrammai Power Apps
Problēmu novēršana saistībā ar startēšanas problēmām pakalpojumā Power Apps

Piezīme

Kādas ir jūsu dokumentācijas valodas preferences? Aizpildiet īsu aptauju. (ņemiet vērā, ka aptauja ir angļu valodā)

Aptaujai būs nepieciešamas aptuveni septiņas minūtes. Nekādi personas dati netiks vākti (paziņojums par konfidencialitāti).