PHP Performance Tuning: 12 prostych wskazówek

w każdej aplikacji internetowej PHP wydajność naprawdę ma znaczenie. Użytkownicy skarżą się na powolne ładowanie stron, niedostępne strony, nie reagujące linki i wiele innych czynników, które prowadzą do utraty tych użytkowników jako klientów. Aby zaspokoić potrzeby użytkowników, wydajność musi być stale sprawdzana i monitorowana. Każda aplikacja potrzebuje narzędzi do monitorowania i pomiaru wydajności systemu. Oto 12 prostych wskazówek dotyczących strojenia wydajności PHP.

Wskazówka: Znajdź błędy aplikacji i problemy z wydajnością natychmiast dzięki Stackify Retrace

Rozwiązywanie problemów i optymalizacja kodu jest łatwa dzięki zintegrowanym błędom, dziennikom i analizom wydajności na poziomie kodu.

wypróbuj już dziś za darmo

Wskazówki dotyczące dostrajania wydajności PHP

wąskie gardła

pierwszym krokiem jest zidentyfikowanie przeszkód w wydajności aplikacji, aby znaleźć główną przyczynę problemu. Identyfikując problem, możesz zaplanować i wybrać najlepsze możliwe rozwiązanie i opcję dla swojej aplikacji. Następnie można wdrożyć rozwiązanie, a następnie można zmierzyć wyniki. Możesz użyć narzędzi takich jak prefiks lub Retrace, aby dostroić wydajność PHP.Prefiks

służy do podświetlania wolnych zapytań, które weryfikują zachowanie kodu i wiele więcej. Należy rozpoznać, które narzędzie optymalizacyjne może pomóc w mierzeniu wydajności aplikacji. Należy również sporządzić listę potrzeb aplikacji i zamówić ją od najwyższego do najniższego priorytetu. W ten sposób możesz zidentyfikować, że niektóre elementy nie są ważne, aby się martwić.

Profilowanie

jedna wskazówka dotycząca strojenia wydajności PHP to profilowanie. Istnieje wiele narzędzi do profilowania, które musisz zidentyfikować, które pasowałyby do Twoich potrzeb. Każdy profiler PHP ma swoje własne funkcje i zalety. Przeglądałem Profiler PHP w Internecie i każdy ma swoje zalety i wady w korzystaniu z niego. Stackify ma prefiks, który jest używany jako narzędzie do profilowania. Ma unikalne cechy, które pozwalają uzyskać ciągłe informacje zwrotne na temat wydajności kodu po stronie serwera, SQL i innych metod używanych w systemie. Najlepszą i najbardziej imponującą funkcją prefiksu jest wizualizacja całego potoku żądań podczas tworzenia aplikacji internetowych.

po pobraniu i zainstalowaniu prefiksu możesz bezpośrednio zobaczyć informacje o

  • całkowity czas potrzebny na serwowanie strony
  • został złapany wyjątek
  • zwrócony kod statusu był 200

i inne ważne szczegóły, które musisz monitorować i wiedzieć o swojej aplikacji.

Optymalizacja kodu

jedną z metod dostrajania wydajności PHP w celu zapewnienia jakości kodu jest posiadanie najlepszego procesu i technik optymalizacji kodu. Twój kod może być zoptymalizowany tak, że wykorzystuje pamięć, wykonuje szybciej, a także wykonuje mniej operacji wejścia i wyjścia. Mimo że optymalizacja kodu jest jedną z najlepszych wskazówek dotyczących dostrajania wydajności PHP, nie oznacza to, że Twój kod musi być złożony lub musisz zastąpić jakiekolwiek standardowe biblioteki. Czasami optymalizacja zajmuje dużo czasu na śledzenie i utrzymanie kodu. W najgorszym przypadku te optymalizacje nie przyczyniają się do żadnej korzyści, ponieważ marnujesz dużo czasu na optymalizację niekrytycznych części aplikacji.

większość aplikacji zazwyczaj korzysta z wielu zależności, takich jak usługi PaaS, ElasticSearch, Redis, kolejkowanie, bazy danych SQL & NoSQL, MongoDB i wiele innych. Prefiks pomaga programistom zrozumieć, czy ich kod prawidłowo używa wszystkich zależności. Pozwala także programistom dowiedzieć się, w jaki sposób wszystkie zależności wpływają na wydajność ich aplikacji.

optymalizacja konfiguracji

w każdej aplikacji PHP pierwszą rzeczą, którą robisz, jest skonfigurowanie konfiguracji i innych środowisk mających zastosowanie w Twojej aplikacji. Możesz być w stanie dodać tak wiele funkcji, które zwiększają wydajność aplikacji i optymalizują kod, ale odpowiednia konfiguracja środowiska uruchomieniowego PHP również będzie miała znaczenie. Optymalizacja konfiguracji pozwala również zoptymalizować wydajność aplikacji, a także zapewnić niezawodność i opłacalność pamięci masowej systemu aplikacji. Zmiana ustawień aplikacji może spowodować, że niektóre aplikacje PHP przestaną działać. Musisz zrozumieć ideę modyfikowania niektórych ustawień, ale zawsze pamiętaj, że po wyłączeniu czegoś musisz śledzić zmiany za pomocą testu w swoim środowisku.

przetwarzanie rozproszone

przetwarzanie rozproszone jest praktykowane w celu zwiększenia potencjału równoległego wykonywania. Technika ta może zwiększyć obciążenie współdzielonych zasobów najprawdopodobniej w systemach bazodanowych. Większość aplikacji internetowych ma problemy i problemy, jeśli chodzi o opóźnienia i dystrybucję przepustowości, ale przetwarzanie rozproszone może pomóc zminimalizować opóźnienia i uniknąć wąskich gardeł. W ten sposób przetwarzanie rozproszone może być bardzo korzystne dla systemu z rozproszonych pamięci podręcznych. Wskazówki dotyczące buforowania będą kolejnym tematem poniżej.

Strategia buforowania

dobra strategia buforowania może zmniejszyć liczbę operacji na bazie danych i kompilacji kodu. Często rozsądnie jest używać Memcache do zmniejszania obciążenia bazy danych, alternatywnego bufora PHP (APC) do buforowania kodu opcode i optymalizacji kodu. Istnieje wiele opcji, gdy mówimy o buforowaniu w PHP opcode. Należą do nich APC (który jest bezpłatny!), eAccelerator (free), XCache (free) i Zend Platform. Stackify najpierw używa zarządzanej pamięci podręcznej systemu Windows Azure, ale wpłynęło kilka skarg. Dlatego Stackify postanowił wypróbować Redis, który jest teraz obsługiwany przez platformę Azure. Redis jest o wiele bardziej zalecane niż Windows Azure Managed Cache. Moją najlepszą radą jest prawidłowa ocena każdej strategii pamięci podręcznej, aby zobaczyć, który najlepiej pasuje do Twoich potrzeb i zapewnia najlepsze wyniki.

równoważenie obciążenia

w aplikacji internetowej równoważenie obciążenia nie ma wiele wspólnego z aplikacją, ale będzie miało większy wpływ na hosting i infrastrukturę. W PHP równoważenie obciążenia jest konfigurowane w wtyczkach przy użyciu różnych technik, takich jak losowy, round-robin i filtr użytkownika. Można również dokonać pewnych priorytetów, jeśli chodzi o przypisanie serwera; w ten sposób niektóre priorytety mogą być przydatne w środowiskach heterogenicznych. Jedyną rzeczą, o której zawsze należy pamiętać, jest to, że należy unikać obiektów sesji, ponieważ są one przechowywane w pamięci komputera lokalnego. W ten sposób synchronizacja danych może wprowadzać w błąd podczas tworzenia kopii zapasowych lub podczas rzeczywistego przetwarzania danych.

oprócz unikania obiektów sesji, nie należy również przechowywać plików takich jak obrazy na serwerze. Lepiej byłoby umieścić je w chmurze. Na koniec, jeśli masz serwery o tej samej konfiguracji, zawsze pamiętaj, że niektóre serwery są lepsze niż inne w konfiguracji sprzętowej.

w większości przypadków głównym problemem z równoważeniem obciążenia jest odzyskiwanie bazy danych i kopii zapasowych. W Stackify równoważenie obciążenia nie stanowi większego problemu, ponieważ optymalizuje chmurę, aby być konkretnym. Chmura oferuje środowisko odzyskiwania po awarii, które jest konfigurowane, gotowe i odpowiednio skalowane w razie potrzeby.

unikaj po stronie klienta

w każdej aplikacji internetowej, gdy masz tak wiele przekierowań stron, może to znacznie zmniejszyć szybkość strony. Zaleca się ciągłe sprawdzanie i usuwanie lub zmniejszanie przekierowania stron. Z drugiej strony przekierowanie użytkowników do wersji SSL strony w ogóle nie będzie działać.

bezpieczeństwo (HTTP/2 przez SSL)

Hypertext Transfer Protocol to protokół aplikacji działający na warstwie TCP/IP. HTTP jest odpowiedzialny za nawiązanie połączenia między serwerem a klientem. Odpowiada również za przetwarzanie żądań użytkowników na stronie internetowej lub w przeglądarce. Secure Socket Layer (SSL), z drugiej strony, jest zabezpieczoną wersją HTTP. Większość komunikacji między serwerem WWW a klientem jest szyfrowana przez SSL.

w dzisiejszej technologii większość naszej przeglądarki obsługuje już HTTP / 2. Chociaż przeglądarki obsługują HTTP / 2, w rzeczywistości ma ograniczenia po stronie serwera.

SQL

baza danych jest jednym z najbardziej podstawowych elementów w aplikacji internetowej. W bazie danych SQL zawsze musisz zrozumieć, jak działają podstawowe zasoby. SQL Server ma wbudowane własne Dynamiczne widoki zarządzania (DMV). Większość DVM dostarcza dane o statystykach zapytań, realizacji planów i wielu innych. Dobrą rzeczą w DVMs jest to, że zawsze jest dostępny do dostarczania podstawowych statystyk rollup, ale nie może wizualizować zapytań, które są wywoływane w czasie.

narzędzia do zarządzania wydajnością aplikacji (APM) mają możliwość śledzenia zapytań SQL. Retrace zapewnia zapytania śledzenia SQL dla wielu dostawców baz danych, w tym SQL Server. Retrace informuje również, ile razy zapytanie zostało wykonane i jakie transakcje go wywołują. Najważniejszą zaletą korzystania z Retrace jest to, że ma szczegółowe raportowanie w aplikacjach, na aplikację i zapytanie. Może pokazać szczegółowe transakcje dotyczące sposobu korzystania z zapytań w aplikacji. Jest to najważniejsza informacja, jeśli chodzi o strojenie wydajności PHP dla SQL.

Content delivery network (CDN)

Content delivery network (CDN) jest jednym z najbardziej efektywnych i skutecznych sposobów na przyspieszenie dostarczania stron internetowych o dużym ruchu i witryn o globalnym zasięgu. Wiele firm korzysta już z CDN podczas obsługi witryn na dużą skalę, aby zwiększyć zasięg geograficzny. Ta technika może zmniejszyć opóźnienia, zmniejszyć zużycie przepustowości i zabezpieczyć aplikacje, a jednocześnie może blokować spamerów i inne urządzenia do usuwania danych, które mogą zaatakować Twój system.

obsługa błędów

obsługa błędów jest jedną z najważniejszych części tworzenia aplikacji. PHP zapewnia różne techniki i strategie radzenia sobie z błędami. Pozwalają one ustalić własne reguły obsługi błędów i modyfikować sposób rejestrowania błędów. Pozwala to rozwijać i ulepszać raportowanie błędów, które najlepiej odpowiada twoim potrzebom.

Rozwiązywanie problemów jest bólem głowy podczas i po rozwoju, a Stackify zaprojektował rozwiązanie problemu. Najpotężniejszą funkcją Retrace jest profilowanie kodu, które może nawet śledzić błędy, nawet jeśli nie rejestrujesz się. Znajduje ukryte błędy w kodzie i szybko daje powiadomienia za pośrednictwem poczty e-mail i SMS, zanim wszyscy klienci zostaną dotknięci. Monitorowanie błędów w Retrace jest ograniczone nie tylko podczas opracowywania, ale także w środowisku produkcyjnym i automatycznie aktualizuje nowe błędy i dzienniki.

podsumowanie

na rynku dostępnych jest wiele narzędzi do monitorowania wydajności. Wybierz ten, który najlepiej pasuje do Twoich potrzeb w Twojej aplikacji.

Stackify dostarcza wiele pakietów, które każdy programista, administrator systemów, a nawet Administrator baz danych zawsze uznałby za przydatne. Korzystając z naszych produktów Stackify, możesz łatwo monitorować, rejestrować, debugować Dane i wiele innych szczegółów, które znajdą główną przyczynę problemów z aplikacjami internetowymi, a Ty staniesz się bardziej produktywny. Możesz wypróbować naszą bezpłatną wersję próbną już teraz.

więcej informacji

te artykuły zawierają dodatkowe informacje na temat dostrajania wydajności PHP, które mogą być przydatne w aplikacjach PHP.

  • 18 narzędzia PHP dla programistów wszystkich poziomów
  • dlaczego Optymalizacja jest korzeniem wszelkiego zła
  • Optymalizacja wydajności www: Top 3 Porady dotyczące wydajności po stronie serwera i klienta
  • podstawy testowania wydajności aplikacji internetowych
  • porównanie 18 narzędzi do monitorowania aplikacji APM &
  • o autorze
  • najnowsze posty

Juliet Mendez

Juliet Mendez jest profesorem na Wydziale Informatyki i Nauk Informacyjnych oraz doktorantem specjalizującym się w technologii informacyjnej. Ma doświadczenie w CCNA, programowaniu komputerowym, takim jak PHP, JAVA, rozwój mobilny i Zarządzanie projektami.

  • wyświetl wszystkie błędy PHP: podstawowy & zaawansowane użycie-27 marca 2020 r
  • Przewodnik optymalizacji wydajności PHP-Październik 9, 2018
  • 5 Narzędzia do testowania wydajności PHP, które musisz znać-Wrzesień 26, 2018
  • Laravel Eloquent Tutorial With Examples-wrzesień 24, 2018
  • Pobierz szczegółowy Trater PHP-sierpień 20, 2018

Leave a Reply

Twój adres e-mail nie zostanie opublikowany.