Rekomendacje dotyczące optymalizacji logiki
Dotyczy tej rekomendacji listy kontrolnej wydajności dobrze zaprojektowanej struktury Power Platform:
PE:06 | Używaj wydajnej logiki i upewnij się, że odciąża ona platformę. Używaj logiki tylko zgodnie z jej przeznaczeniem i tylko wtedy, gdy jest to konieczne. |
---|
W tym przewodniku opisano zalecenia dotyczące optymalizowania wydajności kodu i infrastruktury. Aby zoptymalizować kod i infrastrukturę, należy używać składników tylko do ich podstawowego celu i tylko wtedy, gdy jest to wymagane. Nadmierne użycie kodu i infrastruktury powoduje niepotrzebne zużycie zasobów, wąskie gardła i powolne odpowiedzi. Aby zrekompensować te nieefektywności, należy dodać więcej zasobów w celu wykonania tych samych zadań.
Definicje
Termin | Definicja |
---|---|
Współbieżność | Gdy wiele zadań lub procesów jest wykonywanych jednocześnie, ale niekoniecznie dokładnie w tym samym czasie. |
Równoległość | Gdy wiele zadań lub procesów jest wykonywanych w tym samym czasie. |
Kluczowe strategie projektowania
Optymalizacja logiki i infrastruktury pociąga za sobą precyzyjne dostrojenie logiki i infrastruktury pomocniczej w celu poprawy wydajności. Wymaga wydajnej logiki, która szybko wykonuje zadania i nie marnuje zasobów. Wymaga dobrze zaprojektowanej infrastruktury, która jest usprawniona, aby uniknąć niepotrzebnej złożoności. Obciążenie powinno korzystać z nieodłącznych możliwości platformy. Takie podejście pomaga zapewnić, że zarówno logika, jak i infrastruktura są używane głównie do ich podstawowych celów i tylko wtedy, gdy jest to konieczne.
Optymalizowanie wydajności logiki
Aby zoptymalizować wydajność logiki, zmodyfikuj kod, aby zmniejszyć użycie zasobów, zminimalizować czas wykonywania i zwiększyć wydajność. Logikę można zmodyfikować, aby poprawić wydajność i szybkość działania aplikacji lub przepływu. Nie maskuj problemów z wydajnością brutalną siłą. Atak siłowy oznacza dodanie zasobów obliczeniowych w celu zrekompensowania wydajności kodu, na przykład dodanie dodatkowej pojemności zamiast adresowania źródła. Musisz rozwiązać problemy z wydajnością za pomocą optymalizacji. Optymalizowanie wydajności logiki pomaga zmaksymalizować wykorzystanie zasobów systemowych, skraca czas reakcji, zmniejsza opóźnienia i poprawia wrażenia użytkownika.
Instrumentacja logiki
Instrumentowanie logiki odnosi się do praktyki dodawania niestandardowego rejestrowania zdarzeń w celu zbierania danych i monitorowania wydajności logiki w czasie wykonywania. Instrumentacja logiki umożliwia deweloperom zbieranie informacji o kluczowych metrykach, takich jak czas wykonywania. Dzięki instrumentacji logiki deweloperzy mogą uzyskać wgląd w ścieżki dynamiczne logiki, zidentyfikować wąskie gardła wydajności i zoptymalizować logikę w celu uzyskania lepszej wydajności wydajności.
Najlepiej byłoby, gdybyś przeprowadził analizę logiczną na wczesnym etapie cyklu życia tworzenia oprogramowania. Im wcześniej wykryjesz problem z logiką, tym taniej jest go naprawić. Chcesz zautomatyzować jak najwięcej tej analizy logicznej. Użyj dynamicznych i statycznych narzędzi do analizy kodu, aby zmniejszyć nakład pracy ręcznej. Na przykład kontroler przepływu może wyróżnić logikę, która nie powinna być wydajna, na przykład zapytanie, które nie określa kryteriów filtrowania. Należy jednak pamiętać, że te testy są nadal symulacją produkcji. Środowisko produkcyjne zapewnia najdokładniejsze zrozumienie optymalizacji logiki.
Kompromis: narzędzia do monitorowania logiki prawdopodobnie zwiększą koszty.
Identyfikowanie ścieżek aktywnych
Instrumentując logikę, można mierzyć zużycie zasobów dla różnych ścieżek logicznych. Pomiary te pomagają zidentyfikować gorące ścieżki. Gorące ścieżki mają znaczący wpływ na wydajność i użycie zasobów. Są to krytyczne lub często wykonywane sekcje programu, które wymagają wysokiej wydajności i małych opóźnień.
Aby zidentyfikować gorące ścieżki kodu, należy wziąć pod uwagę następujące kroki:
Analizowanie danych środowiska uruchomieniowego: zbieranie danych środowiska uruchomieniowego i analizowanie ich w celu zidentyfikowania obszarów logiki, które zużywają najwięcej czasu. Poszukaj wzorców lub sekcji logiki, które są często wykonywane lub których ukończenie zajmuje dużo czasu.
Mierzenie wydajności: użyj narzędzi do profilowania lub struktur testowania wydajności, aby zmierzyć czas wykonywania i zużycie zasobów różnych ścieżek logicznych. Proces ten pomaga zidentyfikować wąskie gardła i obszary wymagające poprawy. Na przykład możesz użyć funkcji monitorowania w Power Apps, aby lepiej zrozumieć sposób działania zdarzeń i formuł aplikacji, dzięki czemu można poprawić wydajność.
Rozważ logikę biznesową i wpływ na użytkownika: oceń znaczenie różnych ścieżek logicznych na podstawie ich znaczenia dla funkcjonalności aplikacji lub krytycznych operacji biznesowych. Określ, które ścieżki logiczne są kluczowe dla dostarczania wartości użytkownikom lub spełniania wymagań dotyczących wydajności.
Optymalizowanie logiki
Optymalizacja logiki polega na udoskonaleniu struktury i projektu logiki w celu wykonywania zadań przy użyciu mniejszej liczby zasobów. Ulepszona logika zmniejsza liczbę niepotrzebnych operacji. Zapewnia szybsze wykonywanie przy mniejszym zużyciu zasobów. Należy usunąć wszelkie niepotrzebne operacje w ścieżce logicznej, które mogą mieć wpływ na wydajność. Nadaj priorytet optymalizacji gorących ścieżek, aby uzyskać największy wzrost wydajności.
Aby zoptymalizować logikę, rozważ następujące strategie:
Usuń niepotrzebne wywołania funkcji: przejrzyj logikę i zidentyfikuj wszystkie funkcje, które nie są niezbędne dla żądanej funkcjonalności i mogą mieć negatywny wpływ na wydajność. Jeśli na przykład wywołanie funkcji wykonuje walidację zakończoną wcześniej w kodzie, można usunąć niepotrzebne wywołanie funkcji sprawdzania poprawności.
Minimalizacja operacji logowania: rejestrowanie może być przydatne do debugowania i analizy, ale nadmierne rejestrowanie może mieć wpływ na wydajność. Oceń konieczność każdej operacji rejestrowania i usuń wszelkie niepotrzebne wywołania rejestrowania, które nie są krytyczne dla analizy wydajności. Dobrą praktyką jest zezwolenie systemowi na włączanie i wyłączanie rejestrowania, aby pomóc w debugowaniu, a jednocześnie nie powodować problemów z wydajnością produkcyjną.
Optymalizowanie pętli i warunków: analizuj pętle i warunki w logice oraz identyfikuj wszelkie niepotrzebne iteracje lub warunki, które można wyeliminować. Uproszczenie i zoptymalizowanie tych struktur może poprawić wydajność kodu. Zminimalizuj liczbę wywołań funkcji w pętlach i wyeliminuj zbędne obliczenia. Rozważ przeniesienie obliczeń poza pętlę.
Ogranicz niepotrzebne przetwarzanie danych: przejrzyj logikę pod kątem wszelkich niepotrzebnych operacji przetwarzania danych, takich jak nadmiarowe obliczenia lub przekształcenia. Wyeliminuj te niepotrzebne operacje, aby poprawić wydajność logiki. Na przykład użyj kolumn obliczeniowych Dataverse, pól zestawienia lub kolumn Power Fx zamiast obliczać wartość w kodzie i przechowywać ją w operacji zapisywania.
Optymalizacja struktur danych. Aby efektywnie przechowywać i pobierać dane, należy wybrać odpowiednie struktury danych i tylko wymagane kolumny danych. Wybierz najlepszą strukturę danych dla konkretnego problemu. Odpowiednia struktura danych poprawia wydajność aplikacji.
Minimalizuj żądania sieciowe: jeśli logika obejmuje tworzenie żądań sieciowych (na przykład przy użyciu akcji łącznika), zminimalizuj liczbę żądań i zoptymalizuj ich użycie. Wysyłaj żądania wsadowe, jeśli to możliwe, i unikaj niepotrzebnych połączeń, aby poprawić wydajność.
Zmniejsz rozmiar struktury danych: przejrzyj wymagania dotyczące danych i wyeliminuj wszelkie niepotrzebne pola lub właściwości. Zoptymalizuj użycie pamięci, wybierając odpowiednie typy danych i efektywnie pakując dane.
Pracuj asynchronicznie: oceń, czy praca może być wykonywana asynchronicznie, a nie synchronicznie w logice. Na przykład zamiast wykonywać operację śródwierszowo, rozważ zaimplementowanie przepływu Power Automate w celu asynchronicznego przetwarzania pracy.
Skonfiguruj przed dostosowaniem. Jeśli to możliwe, użyj standardowych składników aplikacji. Dostosowania, takie jak wtyczki i JavaScript, mogą mieć wpływ na wydajność.
Minimalizuj kontrolki. Wyświetlaj w formularzach tylko te pola, które są potrzebne — zbyt wiele pól może zaśmiecać interfejs użytkownika i wpływać na wydajność. Zminimalizuj liczbę kontrolek na pasku poleceń, w aplikacji kanwy lub na stronie niestandardowej. Unikaj zagnieżdżania galerii lub dodawania zbyt wielu składników do galerii.
Optymalizowanie zapytań dotyczących danych. Ładuj tylko te dane, które są potrzebne w aplikacji lub przepływie. Użyj widoków po stronie serwera, aby wstępnie filtrować dane w celu zawężenia danych istotnych dla zapytania.
Zapoznaj się z zaleceniami dotyczącymi wydajności produktu Power Platform, z którym pracujesz. Oceń swoją logikę pod kątem tych zaleceń, aby zidentyfikować obszary wymagające poprawy.
Kompromis: optymalizacja logiki i ścieżek aktywnych wymaga specjalistycznej wiedzy. Identyfikowanie nieefektywności logiki jest subiektywne i może wymagać wysoko wykwalifikowanych osób, które mogą być konieczne do odsunięcia od innych zadań.
Używanie współbieżności i równoległości
Korzystanie ze współbieżności i równoległości wiąże się z wykonywaniem wielu zadań lub procesów jednocześnie lub w sposób nakładający się w celu efektywnego wykorzystania zasobów obliczeniowych. Te techniki zwiększają ogólną przepływność i liczbę zadań, które obciążenie może przetworzyć. Jednoczesne lub równoległe uruchamianie zadań może skrócić czas wykonywania aplikacji i wydłużyć czas odpowiedzi.
Współbieżność i równoległość efektywnie rozdzielają obciążenie między zasoby obliczeniowe. Podczas zwiększania współbieżności lub równoległości należy wziąć pod uwagę wpływ na inne systemy, ponieważ można przekroczyć ich limity. Na przykład współbieżna pętla w przepływie Power Automate przetwarzającym każdy element na raz może przekroczyć limity żądań łącznika używanego w logice pętli.
Użyj równoległości. Równoległość to zdolność systemu do jednoczesnego wyzwalania wielu zadań lub procesów w wielu zasobach obliczeniowych. Równoległość dzieli obciążenie na mniejsze zadania, które są uruchamiane równolegle. Gdy logika jest uruchamiana równolegle, wydajność wzrasta, ponieważ obciążenie jest rozłożone na wiele gałęzi.
Używaj współbieżności. Współbieżność to zdolność systemu do uruchamiania wielu zadań lub procesów. Współbieżność umożliwia różnym częściom obciążenia niezależne postępy, co może poprawić ogólną wydajność.
Współbieżne wykonywanie: współbieżne wykonywanie umożliwia jednoczesne uruchamianie tej samej logiki. Ograniczenie współbieżnego wykonywania do jednego może mieć wpływ na logikę serializacji, co skutkuje przetwarzaniem jednego elementu na raz. Kontrolowanie ilości współbieżnego wykonywania elementów obciążenia może pomóc w zarządzaniu użyciem zasobów podczas przetwarzania. Na przykład pętle przepływu Power Automate można skonfigurować tak, aby przetwarzały wiele akcji równolegle przy użyciu właściwości Kontrolka współbieżna.
Notatka
Przed włączeniem współbieżności należy pamiętać, że oznacza to, że wiele akcji będzie wykonywanych w tym samym czasie — jeśli zapisujesz dane w ramach pętli, upewnij się, że miejsce docelowe danych może obsługiwać jednoczesne żądania.
Kolejki: kolejka to bufor magazynu znajdujący się między składnikiem żądającym (producentem) a składnikiem przetwarzającym (odbiorcą) obciążenia. W jednej kolejce może znajdować się wielu odbiorców. Wraz ze wzrostem liczby zadań należy skalować konsumentów, aby sprostać zapotrzebowaniu. Producent umieszcza zadania w kolejce. Kolejka przechowuje zadania do momentu, gdy odbiorca uzyska dyspozycyjność. Kolejka jest często najlepszym sposobem przekazania pracy do usługi przetwarzania, która doświadcza szczytowego zapotrzebowania. Aby uzyskać więcej informacji, zobacz Wzorzec równoważenia obciążenia oparty na kolejkach i Kolejki magazynowania i kolejki Service Bus.
Optymalizowanie zadań w tle
Wiele aplikacji wymaga, aby zadania w tle byly uruchamianie niezależnie od interfejsu użytkownika. Aplikacja może uruchomić zadanie i kontynuować przetwarzanie interakcyjnych żądań od użytkowników. Przykłady zadań w tle obejmują zadania wsadowe, zadania intensywnie korzystające z procesora i długotrwałe procesy, takie jak przepływy pracy. Zadania w tle nie powinny blokować aplikacji ani powodować niespójności z powodu opóźnionego działania, gdy system jest obciążony. Aby uzyskać więcej informacji na temat optymalizowania zadań w tle, zobacz Rekomendacje dotyczące tworzenia zadań w tle.
Ułatwienia Power Platform
Instrumentacja kodu: podczas tworzenia aplikacji kanwy należy używać wzorców wydajności w celu zwiększenia wydajności aplikacji, a unikać antywzorców. Aby uzyskać więcej informacji, zobacz Omówienie tworzenia wydajnych Power Apps. Używaj funkcji monitorowania w Power Apps celu diagnozowania i rozwiązywania problemów z wydajnością podczas programowania.
Mierz zaangażowanie i wyniki: podczas budowania agentów śledzenie zaangażowania w konwersację i jej wyników jest niezbędne do mierzenia wskaźników wydajności agent i odkrywania obszarów wymagających poprawy.
Optymalizowanie logiki kodu: dzięki funkcji sprawdzania rozwiązania możesz przeprowadzać bogate analizy statyczne na rozwiązaniach dla zestawu reguł najlepszych metod postępowania i szybko określać problematyczne wzorce. Dzięki kontrolerowi przepływu możesz uzyskać wgląd w to, które obszary implementacji przepływu stwarzają ryzyko związane z wydajnością?
Używanie współbieżności i równoległości: przepływy w chmurze Power Automate obsługują współbieżność w pętlach i wyzwalaczach. Pamiętaj, że obowiązują limity współbieżności, pętli i dzielenia partii na elementy, które są oparte na Twoim profilu wydajności. Power Apps obsługuje współbieżność przy użyciu funkcji współbieżności.
Optymalizowanie wydajności Dataverse: Microsoft Dataverse oferuje rozszerzalną strukturę, która zapewnia deweloperom możliwość tworzenia wysoko dostosowanych i dopasowanych do potrzeb środowisk. Podczas dostosowywania, rozszerzania lub integrowania z Dataverse pamiętaj o ustalonych wskazówkach i najlepszych rozwiązaniach. Zobacz Sprawdzone metody postępowania i wskazówki dotyczące korzystania z Microsoft Dataverse.
Informacje pokrewne
- Współbieżność, limity pętli i dzielenia partii na elementy w Power Automate
- Wskazówki dotyczące optymalizacji wydajności Dynamics 365 dla poszczególnych produktów
- Dostrojenie wydajności i optymalizacja dla aplikacji obsługi klienta
- Omówienie tworzenia wydajnych aplikacji Power Apps
- Omówienie narzędzia Monitor
- Poprawienie wydajności, stabilności i niezawodności składnika za pomocą sprawdzania rozwiązania
Lista kontrolna efektywności wydajności
Zapoznaj się z kompletną zestawem zaleceń.