Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
În această postare de blog, vom învăța cum să folosim funcția concomitentă din Power Apps. Funcția concomitentă, așa cum sugerează și numele, vă permite să rulați funcții simultan în Power Apps.
De obicei, atunci când rulați orice procese sau fluxuri de lucru, acestea trebuie să ruleze imediat după alta. Dar există cazuri speciale în care vă puteți optimiza aplicația făcându-le să ruleze concomitent sau în același timp . Și despre asta vom discuta în această postare.
Ceea ce am aici este o aplicație foarte simplă pe care dorim să o optimizăm în Power Apps . Când un utilizator introduce o frază aici, butonul Run Sequence face o mulțime de lucruri diferite.
Să mergem la proprietatea OnSelect a butonului Run Sequence .
După cum putem vedea aici, se întâmplă destul de multe lucruri. Mai întâi setăm variabila StartTime = Now , doar ca să putem cronometra cât durează acest lucru.
Apoi ștergem variabila de colecție numită Ieșire.
Și apoi facem aceste seturi de lucruri care probabil necesită cel mai mult timp. În principiu, solicităm Microsoft Translator să traducă orice am introdus în text în franceză, germană, olandeză, coreeană, greacă, spaniolă și hindi. Punctele și virgulă de la sfârșitul fiecărei linii reprezintă faptul că acest lucru se întâmplă secvenţial.
Unul dintre ultimele lucruri pe care le facem este să luăm toate aceste intrări, toate aceste variabile și să creăm o colecție din ele. Această colecție conține textul real pe care vrem să-l traducem, limba în care am traduce, precum și textul tradus real. Și din nou, o facem pentru franceză, germană, olandeză și așa mai departe.
Cuprins
Actualizează conexiunea SharePoint
De asemenea, vom reîmprospăta o conexiune SharePoint pentru a adăuga un nivel suplimentar de timp de procesare. Apoi, vom seta variabila EndTime = Now , deoarece vrem să urmărim cât durează această întreagă secvență.
Din nou, aceasta este o secvență pe care o cunoaștem prin prezența punctului și virgulă aici. Fiecare punct și virgulă reprezintă o nouă funcție care începe, așa că totul se întâmplă în ordine secvențială.
Să rulăm acest program făcând clic pe butonul Run Sequence. Putem vedea că scoate un tabel cu expresia reală Hello , limba și traducerea corespunzătoare.
Putem vedea, de asemenea, în partea de jos că atunci când am reîmprospătat o listă SharePoint, a fost nevoie de 500 de milisecunde.
Evident, acest lucru nu a durat prea mult. Și nimeni nu se va agita pentru ceva care durează 500 de milisecunde pentru a fi procesat.
Dar ce se întâmplă dacă aceste procese (care folosesc servicii terțe) durează mult timp? Ce se întâmplă dacă în loc să scriem doar un cuvânt aici, am copia și lipim secțiunea a doua din Constituția SUA aici, apoi rulăm secvența?
Acesta a durat puțin mai mult. A durat 1700 de milisecunde sau aproximativ 1,7 secunde.
Dacă copiez și lipesc secțiunea 3 din Constituția SUA, va dura exponențial mai mult. Acum suntem la aproximativ patru secunde.
Funcția secvenţială vs concurentă în Power Apps
Puteți vedea cazul de utilizare al rulării acestor funcții concomitent, deoarece dacă le rulați în secvență și dacă aveți tendința de a avea funcții foarte complexe, chiar tinde să dureze ceva timp.
Acum să facem exact același lucru, dar în partea dreaptă, o vom face concomitent. Să schimbăm asta înapoi la Hello , să rulăm secvența, să facem o copie a acesteia și să o aducem în partea dreaptă.
Trebuie să mergem la proprietatea OnSelect a acestui buton și trebuie să o modificăm pentru a-l face simultan. După ștergerea ieșirii, vom introduce cuvântul Concurrent .
Funcția concomitentă din Power Apps ia diferite funcții drept argumente sau ceea ce Power Apps numește formule . Așa că vom face toate acestea simultan, ceea ce înseamnă că în loc ca Power Apps să facă mai întâi franceză, apoi germană, apoi olandeză, va face totul în același timp.
Vom învălui toate aceste funcții în funcția concomitentă. Motivul pentru care ne dă o eroare este că funcția concurentă ia argumente ca formule care sunt separate prin virgule . În prezent folosim punct și virgulă, așa că tot ce trebuie să facem este să intrăm în fiecare dintre aceste lucruri și să le schimbăm în virgule.
Pentru ultima dată punct și virgulă, vom scăpa de el, deoarece este ultimul argument din această funcție. Atunci vom avea nevoie de un punct și virgulă la sfârșitul acestui articol, deoarece concurența este și din punct de vedere tehnic o funcție.
Unul dintre ultimele lucruri pe care le vom face este să mutăm Lista de clienți de reîmprospătare la funcția concomitentă, deoarece nu există nicio dependență aici.
Din nou, motivul pentru care facem acest lucru este că toate aceste funcții nu depind unele de altele, ceea ce înseamnă că nu trebuie să se întâmple secvenţial. Se pot întâmpla în același timp, motiv pentru care facem asta în primul rând.
Deci, după ce am făcut toate acestea, trebuie să ne asigurăm că mergem aici și setăm acest lucru la Ora de început doi și Ora de sfârșit doi , doar pentru a nu intra în conflict cu celelalte variabile de oră de început și de oră de sfârșit. .
Și vom schimba, de asemenea, Ieșirea la Ieșirea doi , astfel încât variabilele să nu se amestece.
Să închidem această funcție și să o testăm. Vom schimba variabilele de la Ora de încheiere la Ora de încheiere a doua și Ora de început la Ora de început a doua .
Vom modifica apoi tabelul de date pentru a ne uita la Output Two , pentru că asta produce acest buton. Vom schimba butonul din Run Sequence în Run Concurrent .
Deci acum avem două lucruri care fac exact același lucru. Se face secvențial și o face concomitent.
Hai să facem câteva teste. Vom introduce Hello și vom rula secvența. Vom rula mai întâi butonul de secvență și apoi pe cel concurent.
Putem vedea că concurența este de aproximativ două sau trei ori mai rapidă decât secvențială. Acum, să mergem mai departe și să copiem secțiunile 1, 2, 3, 4, 5, 6 și 7 din Constituția SUA și să vedem cât timp durează aceasta când folosiți butoanele de secvență și concomitent.
Butonul de secvență a durat mult și a existat o pauză vizibilă. Utilizatorilor tăi nu le va plăcea asta. Dar dacă trebuie să îl rulați simultan, va dura doar o secundă.
Mai ia ceva timp. Dar știi că o faci în cel mai optimizat mod posibil. Diferența dintre o secundă și trei secunde pentru utilizatorii dvs. poate însemna mult.
Un multiplicator de 3x este destul de bun pentru optimizarea Power Apps .
Avantajul funcției concomitente în Power Apps
Observați că există unele lucruri care nu sunt optimizate aici. Să presupunem că aveți 40, 50 sau 60 de limbi, atunci nu veți observa doar un multiplicator de 2x sau 3x, s-ar putea să observați un multiplicator de 10x sau 12x pentru că faceți mai multe lucruri concomitent decât le făceai secvenţial.
Deci, în acest exemplu, vedeți doar un multiplicator de 3x, dar din nou, dacă aveți mai multe procese concurente decât cel pe care îl rulăm aici, atunci veți observa o viteză și mai mare.
Concluzie
În această postare pe blog, am discutat despre ce este funcția concomitentă și cum să o folosim pentru a optimiza aplicațiile Power Apps. Când efectuați mai multe actualizări de date sau citiți mai multe surse de date, o puteți face mai rapid cu funcția concomitentă.
Toate cele bune,
Henry Habib
Ce este Sinele în Python: Exemple din lumea reală
Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.
În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.
Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.
În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.
Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.
Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.
Ce este LuckyTemplates Gateway? Tot ce trebuie să știți