Udostępnij za pośrednictwem


Zalecenia dotyczące optymalizacji logiki

Dotyczy tego Power Platform zalecenia dotyczącego listy kontrolnej Well-Architected Performance Efficiency:

PE:06 Korzystaj z logiki, która jest wydajna, i upewnij się, że odciąża ona platformę od odpowiedzialności. Używaj logiki tylko zgodnie z jej przeznaczeniem i tylko wtedy, gdy jest to konieczne.

W tym przewodniku opisano zalecenia dotyczące optymalizacji wydajności kodu i infrastruktury. Aby zoptymalizować kod i infrastrukturę, należy używać komponentów tylko zgodnie z ich podstawowym celem 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, musisz dodać więcej zasobów, aby wykonać te same zadania.

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ści prostych 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 wydajności. Wymaga wydajnej logiki, która szybko wykonuje zadania i nie marnuje zasobów. Wymaga to dobrze zaprojektowanej infrastruktury, która jest usprawniona, aby uniknąć niepotrzebnej złożoności. Obciążenie powinno wykorzystywać nieodłączne 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 potrzebne.

Zoptymalizuj wydajność 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 zwiększyć wydajność i szybkość działania aplikacji lub przepływu. Nie maskuj problemów z wydajnością za pomocą brutalnej siły. 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. Optymalizując wydajność logiki, pomaga to zmaksymalizować wykorzystanie zasobów systemowych, skraca czas odpowiedzi, zmniejsza opóźnienia i poprawia wrażenia użytkownika.

Instrumentacja logiki

Logika instrumentacji odnosi się do praktyki dodawania niestandardowego rejestrowania zdarzeń w celu zbierania danych i monitorowania wydajności logiki w czasie wykonywania. Instrumentacja logiczna umożliwia deweloperom zbieranie informacji o kluczowych metrykach, takich jak czas wykonywania. Dzięki instrumentacji logiki deweloperzy mogą uzyskać wgląd w dynamiczne ścieżki logiki, zidentyfikować wąskie gardła wydajności i zoptymalizować logikę w celu uzyskania lepszej wydajności.

Idealnie byłoby, gdyby analiza logiczna została przeprowadzona na wczesnym etapie cyklu życia tworzenia oprogramowania. Im wcześniej wykryjesz problem z logiką, tym taniej jest go naprawić. Chcesz zautomatyzować jak największą część tej analizy logicznej. Korzystaj z dynamicznych i statycznych narzędzi do analizy kodu, aby zmniejszyć nakład pracy ręcznej. Na przykład Flow Checker 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. Produkcja zapewnia najjaśniejsze zrozumienie optymalizacji logicznej.

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ć ścieżki aktywne. Ścieżki aktywne mają znaczący wpływ na wydajność i wykorzystanie zasobów. Są to krytyczne lub często wykonywane sekcje programu, które wymagają wysokiej wydajności i małych opóźnień.

Aby zidentyfikować ścieżki aktywne 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, który upłynął. Poszukaj wzorców lub sekcji logiki, które są często wykonywane lub zajmują dużo czasu.

  • Mierzenie wydajności: Użyj narzędzi do profilowania lub ram 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ć narzędzia Monitoruj w, Power Apps aby lepiej zrozumieć, jak działają zdarzenia i formuły aplikacji, co pozwala zwiększyć 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.

Zoptymalizuj logikę

Optymalizacja logiki polega na udoskonaleniu struktury i projektu logiki w celu wykonywania zadań przy użyciu mniejszej ilości zasobów. Ulepszona logika zmniejsza liczbę niepotrzebnych operacji. Zapewnia to 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ą negatywnie wpłynąć na wydajność. Jeśli na przykład wywołanie funkcji wykonuje walidację wykonaną wcześniej w kodzie, można usunąć niepotrzebne wywołanie funkcji sprawdzania poprawności.

  • Minimalizowanie operacji rejestrowania: Rejestrowanie może być przydatne w przypadku 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. Dobrym rozwiązaniem 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ą.

  • Optymalizuj pętle i instrukcje warunkowe: Analizuj pętle i instrukcje warunkowe w logice i identyfikuj wszelkie niepotrzebne iteracje lub warunki, które można wyeliminować. Uproszczenie i zoptymalizowanie tych struktur może poprawić wydajność kodu. Zminimalizuj wywołania funkcji w pętlach i wyeliminuj nadmiarowe 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 Dataverse kolumn obliczeniowych, pól zestawień lub Power Fx kolumn zamiast obliczać wartość w kodzie i przechowywać ją za pomocą operacji zapisywania.

  • Zoptymalizuj struktury 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.

  • Minimalizowanie żądań sieciowych: Jeśli logika obejmuje wysyłanie żądań sieciowych (na przykład przy użyciu akcji łącznika), zminimalizuj liczbę żądań i zoptymalizuj ich użycie. Jeśli to możliwe, wsadź żądania i unikaj niepotrzebnych przejazdów w obie strony, aby zwiększyć 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.

  • Wykonywanie pracy asynchronicznie: Oceń, czy praca może być wykonywana asynchronicznie, a nie synchronicznie w logice. Na przykład zamiast wykonywać operację w tekście, rozważ zaimplementowanie Power Automate przepływu w celu asynchronicznego przetwarzania pracy.

  • Skonfiguruj przed dostosowaniem. Jeśli możesz, korzystaj ze standardowych komponentów aplikacji. Dostosowania, takie jak wtyczki i JavaScript, mogą mieć wpływ na wydajność.

  • Zminimalizuj kontrole. 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 komponentów do galerii.

  • Optymalizowanie zapytań o dane. Zał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 związanych z zapytaniem.

Zapoznaj się z zaleceniami dotyczącymi wydajności specyficznymi Power Platform dla produktu, z którym pracujesz. Oceń swoją logikę pod kątem tych zaleceń, aby zidentyfikować obszary wymagające poprawy.

Kompromis: Optymalizacja logiki i gorących ścieżek wymaga specjalistycznej wiedzy. Identyfikowanie nieefektywności logicznej jest subiektywne i może wymagać wysoko wykwalifikowanych osób, które mogą być konieczne do odciągnięcia od innych zadań.

Korzystanie ze współbieżności i równoległości

Korzystanie ze współbieżności i równoległości polega na wykonywaniu 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 działania aplikacji i wydłużyć czas odpowiedzi.

Współbieżność i równoległość efektywnie rozdzielają obciążenie między zasobami obliczeniowymi. 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 naraz 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 na wielu zasobach obliczeniowych. Równoległość dzieli obciążenie na mniejsze zadania, które są uruchamiane równolegle. Gdy uruchamiasz logikę równolegle, wydajność wzrasta, ponieważ obciążenie jest dystrybuowane w wielu gałęziach.

Użyj 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 osiąganie postępu, 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 jednoczesnego 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 można skonfigurować tak, Power Automate aby przetwarzały wiele akcji równolegle przy użyciu właściwości Kontrolka współbieżna.

    Uwaga

    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ć odbiorców, aby sprostać zapotrzebowaniu. Producent umieszcza zadania w kolejce. Kolejka przechowuje zadania do momentu, gdy odbiorca uzyska dyspozycyjność. Kolejka jest często najlepszym sposobem przekazywania pracy do usługi przetwarzania, która doświadcza szczytów zapotrzebowania. Aby uzyskać więcej informacji, zobacz Wzorzec równoważenia obciążenia oparty na kolejce i Kolejki magazynu i Kolejki usługi Service Bus.

Optymalizowanie zadań w tle

Wiele aplikacji wymaga zadań w tle, które są uruchamiane niezależnie od interfejsu użytkownika. Aplikacja może uruchomić zadanie i kontynuować przetwarzanie interaktywnych żądań od użytkowników. Przykładami zadań w tle są 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 Zalecenia dotyczące tworzenia zadań w tle.

Ułatwienia Power Platform

Kod instrumentacji: podczas tworzenia aplikacji kanwy należy używać wzorców wydajności w celu zwiększenia wydajności aplikacji, podczas gdy należy unikać antywzorców. Aby uzyskać więcej informacji, zobacz Omówienie tworzenia elementu wydajnego Power Apps. Użyj narzędzia Monitoruj w Power Apps celu diagnozowania i rozwiązywania problemów z wydajnością podczas programowania.

Mierz zaangażowanie i wyniki: Podczas budowania współpilotów śledzenie zaangażowania i wyników rozmowy, jest niezbędne do mierzenia wskaźników wydajności drugiego pilota i odkrywania obszarów wymagających poprawy.

Optymalizacja logiki kodu: Dzięki funkcji sprawdzania rozwiązań możesz przeprowadzić rozbudowaną analizę statyczną swoich rozwiązań pod kątem zestawu reguł najlepszych praktyk i szybko zidentyfikować problematyczne wzorce. Dzięki Flow Checker możesz uzyskać wgląd w to, które obszary implementacji Twojego przepływu stanowią ryzyko dla wydajności?

Korzystanie ze współbieżności i równoległości: Power Automate przepływy w chmurze obsługują współbieżność w pętlach i wyzwalaczach. Pamiętaj, że obowiązują limity współbieżności, pętli i debatowania, które są oparte na Twoim profilu wydajności. Power Apps obsługa współbieżności przy użyciu funkcji Concurrent .

Optymalizacja Dataverse wydajności: Microsoft Dataverse zapewnia rozszerzalną strukturę, która umożliwia programistom tworzenie wysoce spersonalizowanych i dostosowanych doświadczeń. Podczas dostosowywania, rozszerzania lub integrowania należy Dataverse pamiętać o ustalonych wskazówkach i najlepszych rozwiązaniach. Zobacz Sprawdzone metody postępowania i wskazówki dotyczące korzystania z Microsoft Dataverse.

Lista kontrolna efektywności wydajności

Zapoznaj się z kompletną zestawem zaleceń.