Бөлісу құралы:


Кенеп бағдарламаларының өнімділігін жақсартуға арналған кеңестер мен үздік тәжірибелер

Алдыңғы мақалаларда сіз кенеп бағдарламаларындағы орындау фазалары және деректерді шақыру ағыны, баяу өнімділіктің жалпы көздері және жалпы өнімділік мәселелері мен шешімдері туралы білдіңіз. Сондай-ақ сіз жасайтын бағдарламалардың өнімділігін жақсарту үшін осы мақаладағы кеңестер мен үздік тәжірибелерге сүйенуіңізге болады.

Деректер қосылымдарын шектеу

Бір бағдарламаға 30-дан астам қосылымды қоспаңыз. Бағдарламалар жаңа пайдаланушыларды әр қосқышқа кіруге сұрайды, сондықтан әрбір артық қосқыш бағдарламаның іске қосылу уақытын көбейтеді. Қолданба іске қосылған кезде әрбір қосқыш CPU ресурстарын, жадты және желінің өткізу қабілетін қолданба деректерді сол көзден сұраған кезде талап етеді.

Бағдарламаның өнімділігін бағдарлама іске қосылып тұрған кезде Developer Tools параметрін Microsoft Edge немесе Google Chrome браузерінде қосу арқылы жылдам өлшеуіңізге болады. Бағдарламаңыз 30-дан астам қосылымнан деректерді жиі сұраса, деректерді қайтаруға 15 секундтан көп уақыт кетуі ықтимал. Әрбір қосылған қосылым Microsoft Dataverse немесе SQL Server кестелері немесе Microsoft тізімдері арқылы жасалған тізімдер сияқты қосылған деректер көзінің түріне—қарамастан осы шекте жеке есептеледі.

Басқару элементтерінің санын шектеу

Бір бағдарламаға 500-ден астам басқару элементін қоспаңыз. Power Apps бағдарламасы әрбір басқару элементтерін көрсету үшін HTML құжат нысанының моделін жасайды. Бақылауды неғұрлым көп қоссаңыз, Power Apps жүйесі соғұрлым көп жасау уақытын қажет етеді.

Жеке басқару элементтерінің орнына галереяны қолдансаңыз, кейбір жағдайларда бірдей нәтижеге қол жеткізе аласыз және қолданбаны тезірек іске қоса аласыз. Сонымен қатар бір экрандағы басқару элементтері түрлерінің санын азайтуды қалауыңыз мүмкін. Кейбір басқару элементтері (PDF қарау құралы, деректер кестесі және құрама қорап сияқты) үлкен орындау сценарийлерін тартып, оны көрсетуге ұзақ уақыт алады.

OnStart сипатын оңтайландыру

Деректер пайдаланушы сеансы кезінде өзгермесе, оны жергілікті түрде кэштеу үшін ClearCollect функциясын пайдаланыңыз. Сондай-ақ Параллель функциясын деректер көздерін бір уақытта жүктеу үшін пайдаланыңыз; бұл бағдарламаға деректерді жүктеу үшін қажет уақытты жартылай қысқартуы мүмкін. Қосымша ақпарат: Power Apps бағдарламасындағы параллель функциясы

Параллель функциясынсыз келесі формула төрт кестенің әрқайсысын бір-бірден жүктейді:

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

Бұл әрекетті келесі кескінде көрсетілгендей браузерге арналған Developer Tools параметрінде растауға болады.

Төрт кестенің бірінен соң бірі жүктелетінін көрсететін диаграмма.

Операция қажет ететін жалпы уақытты азайту үшін Concurrent функциясындағы бір формуланы қосуыңызға болады:

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

Бұл өзгеріспен бағдарлама келесі кескінде көрсетілгендей кестелерді параллель алады.

Төрт кестенің бір уақытта жүктелетінін көрсететін диаграмма.

Ескерім

OnStart оқиғасына қатысты өнімділік мәселелері мен шешімдері туралы қосымша ақпарат алу үшін OnStart оқиғасын баптау қажет.

Кеңес

App.StartScreen сипатын пайдалануды ұсынамыз, себебі ол бағдарламаны іске қосуды жеңілдетеді және өнімділігін арттырады.

Іздеу деректерін кэштеу

Set функциясын деректерді көзден қайталап шығарып алуды болдырмау үшін деректерді іздеу кестелерінен жергілікті түрде кэштеу үшін пайдаланыңыз. Деректер сеанс кезінде өзгертілмейтін болса, бұл әдіс өнімділікті оңтайландырады. Келесі мысалда көрсетілгендей деректер деректер көзінен бір рет алынады, содан кейін пайдаланушы бағдарламаны жапқанға дейін жергілікті сілтеме жасалады.

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

Бұл әдіс байланыс ақпараты, әдепкі мәндер немесе пайдаланушы туралы ақпарат сияқты жиі өзгермейтін деректер үшін пайдалы. Сонымен бірге осы әдісті Әдепкі және Пайдаланушы функцияларымен бірге пайдалануға болады.

Экрандар арасындағы басқару тәуелділігін болдырмау

Өнімділікті жақсарту үшін бағдарламаның экрандары қажет болған жағдайда ғана жадқа жүктеледі. Бұл оңтайландыруға кедергі келуі мүмкін, мысалы, 1-экран жүктелсе және оның формулаларының бірі 2-экрандағы басқару элементінің сипатын қолданса. Енді 1-экран көрсетілместен бұрын тәуелділікті орындау үшін 2-экранды жүктеу керек. 2-экран 3-экранға тәуелді, онда 4-экранға тағы бір тәуелділік бар екенін және т.б. елестетіңізші. Бұл тәуелділік тізбегі көптеген экрандардың жүктелуіне әкелуі мүмкін.

Осы себепті экрандар арасындағы формула тәуелділіктерін болдырмаңыз. Кейбір жағдайларда экрандар арасында ақпарат алмасу үшін глобалдық айнымалыны немесе жинақты пайдалануыңызға болады.

Ерекшелік бар: алдыңғы мысалда 1-ші экранды көрсетудің жалғыз әдісі 2-экраннан өту деп елестетіп көріңіз. 1-экранды жүктеу керек болған кезде 2-экран әлдеқашан жадқа жүктелген болады. 2-экранға тәуелділікті орындау үшін қосымша жұмыс қажет емес, сондықтан өнімділікке әсер етпейді.

Табыстау мүмкіндігін пайдалану

Мүмкіндігінше, деректерді өңдеуді жергілікті құрылғыға шығарудың орнына, деректерді өңдеуді деректер көзіне табыстайтын функцияларды пайдаланыңыз. Егер бағдарлама деректерді жергілікті өңдеу керек болса, онда бұл операция өңдеу қуатын, жадты және желінің өткізу қабілеттілігін едәуір көбірек қажет етеді, әсіресе деректер жинағы үлкен болса.

Кеңес

Белгілі бір қосқыштар қолдау көрсететін өкілетті функциялар туралы білу үшін қосқыш құжаттамасы бөліміне өтіңіз.

Өкілетті функциялардың мысалы үшін Microsoft тізімдері арқылы жасалған тізімдегі Сан деректер түрі ретінде анықталған идентификатор бағанын қарастырыңыз. Келесі мысалдағы формулалар нәтижелерді күткендей қайтарады. Алайда бірінші формула өкілетті болса, екіншісі өкілетті емес.

Формула Өкілетті ме?
Filter ('List data source', ID = 123 ) Иә
Filter(`List data source', ID ="123") Жоқ

Біздің ойымызша SharePoint тізіміндегі идентификатор бағаны Сандық деректер түрімен анықталатындықтан, оң жақтағы мән жолдық айнымалының орнына сандық айнымалы болуы керек. Әйтпесе, мұндай сәйкессіздік формуланың өкілетті емес болуына әкелуі мүмкін.

Өкілетті емес сұраулар үшін өкілетті емес функциялар мен рұқсат етілмеген деректер жолының шектерін пайдалану бағдарламаның өнімділігіне кері әсер етуі мүмкін. Қосымша ақпарат: Кенеп бағдарламасындағы өкілеттілікті түсіну

Кешіктірілген жүктемені пайдалану

Қолданбада 10-нан астам экран, ережелер жоқ және көптеген экрандарда болатын және деректер көзі тікелей байланыстырылған көптеген басқару элементтері болса, алдын ала қарау мүмкіндігін кешіктірілген жүктеу үшін қосыңыз. . Егер сіз бағдарламаның осы түрін жасасаңыз және бұл мүмкіндікті қоспасаңыз, бағдарламаның өнімділігі нашарлауы мүмкін, өйткені барлық экрандардағы басқару элементтері тіпті ашық емес экрандарда да толтырылуы керек. Сондай-ақ қолданбаның барлық экрандары деректер көзі өзгерген сайын жаңартылуы керек, мысалы, пайдаланушы жазба қосқан кезде.

Үлкен деректер жинақтарымен жұмыс істеу

Қолданбаларыңыздың жақсы жұмыс істеуін, сонымен қатар пайдаланушыларыңыздың қажетті барлық ақпаратқа қол жеткізе алуын сақтау және тапсырылмайтын сұраулар үшін 2000 деректердің төменгі шегінен асуды болдырмау үшін табыстауға болатын деректер көздері мен формулаларды пайдаланыңыз. Пайдаланушылар деректерді іздеп, сүзгілеп немесе сұрыптай алатын деректер жазбалары бағандары үшін SQL Server немесе SharePoint сияқты деректер көздері арқылы сипатталған бағандардағы индекстерді пайдаланыңыз.

Ескерім

Үлкен көлемді деректер жинақтарының әртүрлі платформаларда жалпы өнімділік мәселелерін тудыруы туралы қосымша ақпарат алу үшін Әртүрлі платформаларда баяу жүктелетін үлкен деректер жинақтары бөлімін қараңыз.

Қолданбаларды мерзімді түрде жариялап отырыңыз

Жасаушыларға өз бағдарламаларын жүйелі түрде жариялау ұсынылады. Power Apps платформасы үздіксіз оңтайландырылып және орналастырылатындықтан, қайта жариялау кезінде бағдарлама платформаның соңғы оңтайландырулары аясында қайта жасалады.

Бір формуланы бірнеше жерде қайталамауға тырысыңыз

Егер бірнеше сипаттар бірдей формуланы қолданатын болса (әсіресе ол күрделі болса), оны бір рет орнатып, кейінгі сипаттамаларда бірінші сипаттың нәтижесіне сілтеме жасауды қарастырыңыз. Мысалы, A, B, C, D және E басқару элементтерінің DisplayMode сипатын бір күрделі формулаға орнатпаңыз. Оның орнына A басқару элементінің DisplayMode сипатын күрделі формулаға, B-ның DisplayMode сипатын A-ның DisplayMode сипатының нәтижесіне орнатыңыз және сол сияқты C, D және E үшін орындаңыз.

Барлық мәтін енгізу басқару элементтерінде DelayOutput параметрін қосыңыз

Мәтінді енгізу басқару элементінің анықтамасына сілтеме жасайтын көптеген формулаларыңыз немесе ережелеріңіз болса, сол басқару элементінің DelayedOutput сипатын шын мәніне орнатыңыз. Ол басқару элементінің Мәтін сипаты жылдам тізбекте енгізілген пернелердің басылуы тоқтағаннан кейін ғана жаңартылады. Формулалар немесе ережелер бірнеше рет іске қосылмайды және қолданба өнімділігі жақсарады.

Form.Updates формуласын ережелерде және формулаларда пайдаланудан аулақ болыңыз

Егер ережедегі немесе формуладағы пайдаланушы енгізген мәнге Form.Updates айнымалысы арқылы сілтеме жасасаңыз, ол барлық пішін деректер карталарында қайталанады және әр уақытта жазбалар жасайды. Қолданбаны тиімдірек ету үшін тікелей деректер картасынан немесе басқару мәнінен мәнге сілтеме жасаңыз.

Галереядағы өнімділікті жақсарту үшін DelayItemLoading және Loading санағышын пайдалану

Конфигурацияға байланысты галерея көрінетін жолдарды көрсету үшін көп уақыт алуы мүмкін. Өнімділікті жақсартудың бірнеше әдісі бар.

  • Үлгіні жеңілдетіңіз. Мысалы, басқару элементтерінің санын, іздеу сілтемелерін азайтуды қарастырыңыз.
  • Күрделі үлгілері бар галереялар үшін DelayItemLoading санағышы шын және LoadingSpinner санағышы LoadingSpinner.Controls мәніне орнатылуы тиімді болып табылады. Бұл өзгеріс көрсету уақыты ұзақ болған кезде қабылданатын тәжірибені жақсартады. Сонымен қатар DelayItemLoading үлгілердің көрсетуді кейінге қалдырады, бұл экранның қалған бөліктерін тезірек көрсетуге мүмкіндік береді, өйткені экран да, галерея да ресурстарға бәсекелеспейді.

Жақсартылған өнімділік үшін бағдарламаны алдын ала жүктеп алуға рұқсат беру

Таңдау бойынша өнімділікті арттыру үшін бағдарламаны алдын ала жүктей аласыз.

  1. Power Apps ішіне кіріп, содан соң мәзірдегі Бағдарламалар элементін таңдаңыз.

  2. Бөліскіңіз келетін бағдарлама үшін Қосымша әрекеттер (...) тармағын таңдаңыз, содан кейін Параметрлер тармағын таңдаңыз.

  3. "Параметрлер" тақтасында Жақсартылған өнімділік үшін алдын ала жүктеу параметрін Иә мәніне ауыстырыңыз. Содан кейін бағдарлама алдын ала жүктеледі.

Жақсартылған өнімділік үшін бағдарламаны алдын ала жүктеп алу.

  1. Өзгерістердің Teams ішіне ендірілген бағдарламаларда күшіне енуі үшін бағдарламаңызды жойып, Teams бағдарламасына қайта қосыңыз.

    Ескерім

    Бұл құрастырылған қолданба активтерін аутентификациядан бұрын жүктеуді қосу үшін аутентификацияланбаған соңғы нүктелер арқылы қолжетімді етеді. Дегенмен, пайдаланушылар әлі де түпнұсқалық растама мен авторизация аяқталғаннан кейін ғана қосқыштар арқылы деректерге қол жеткізу үшін қолданбаңызды пайдалана алады. Бұл әрекет қолданба деректер көздерінен алатын деректер рұқсатсыз пайдаланушылар үшін қолжетімді болмайтынын қамтамасыз етеді. Құрастырылған қолданба активтері қолданбаны басқару элементтерінде (мысалы, PCF басқару элементтері) авторланған мәтінді қамтитын JavaScript файлдарының жинағын, медиа активтерін (суреттер сияқты), қолданба атауын және қолданба орналасқан орта URL мекенжайын қамтиды.

    Жалпы, қолданбалар қосылымдар арқылы деректер көздерінен медиа мен ақпаратты алуы керек. Егер қолданбаға мультимедиа және ақпарат қосылымсыз қосылуы керек болса және ол құпия болып саналса, бұл параметрді өшіргіңіз келуі мүмкін. Бұл параметрді өшіру пайдаланушылардың қолданбаға кіру үшін біраз уақыт күтуіне әкелетінін ескеріңіз.

Құрылғыңызда сақталған қолданба деректері

Қолданба іске қосылғанда пайдаланушыларға қолданба мәліметтерін жылдамырақ алуға мүмкіндік беру үшін белгілі бір деректер құрылғыңызда браузер кэшінде жергілікті түрде сақталады. Сақталған ақпарат қолданбаны, ортаны және қосылым мәліметтерін қамтиды. Бұл деректер браузерде әр браузердің сақтау шегіне қарай сақталады. Сақталған деректерді тазалау үшін әрбір шолғыш үшін нұсқауларды қараңыз.

Келесі қадамдар

Қолданба өнімділігін арттыру және қолданбаларды сақтауды оңайлату үшін кодтау стандарттарын қарап шығыңыз.

Сондай-ақ келесіні қараңыз

Кенеп бағдарламасының орындалу фазалары мен деректерді шақыру ағынын түсіну
Кенеп бағдарламасының өнімділігіне қатысты жалпы мәселелер мен шешімдер
Кенеп бағдарламалары үшін баяу өнімділіктің жалпы көздері
Power Apps бағдарламасының жалпы мәселелері мен шешімдері
Power Apps бағдарламасын іске қосқан кездегі ақаулықтарды жою

Ескерім

Сіз құжат тіліңіздің артықшылықтары туралы айта аласыз ба? Қысқа сауалнамаға қатысыңыз. (бұл сауалнама ағылшын тілінде екеніне назар аударыңыз)

Сауалнама шамамен жеті минут уақытыңызды алады. Жеке деректер жиналмайды (құпиялылық туралы мәлімдеме).