Testy i recenzje

Dokładny identyfikator php profilu. Profilowanie PHP za pomocą XHprof. Więc kiedy ty

Sygnalizacja, że ​​dana osoba „poniosła porażkę”.

Wiele osób w ogóle tego nie zauważa.

„Betonowa płyta” na ich głowie wydaje się im na tyle znajoma i znajoma, że ​​przejście do stanu twórczego – kiedy są pełni sił i czują się wszechmocni oraz zjednoczeni ze wszystkim, co istnieje – postrzegają jako coś niezwykłego… potężny przełom.

Ale to jest NATURALNY stan człowieka?!

Więc kiedy:

Krok w stronę SIEBIE. Wyzwania każdego dnia

Nie wiesz jak nauczyć się kochać siebie?

Poznaj 14 ćwiczeń, które pomogą Ci zaakceptować siebie i swoje życie w całości!

Klikając przycisk „Natychmiastowy dostęp”, wyrażasz zgodę na przetwarzanie swoich danych osobowych i wyrażasz na to zgodę

  • Popadasz w użalanie się nad sobą
  • Często czujesz się w złym nastroju
  • Czujesz się mały i bezwartościowy
  • Kierują tobą emocje
  • Działając „automatycznie”
  • Nie chcę wstawać rano
  • Napotykasz ciągłe przeszkody
  • Poczucie bezsilności

można śmiało powiedzieć, że NIE udało Ci się.

A pierwszym krokiem na ścieżce „uzdrowienia” jest ZOBACZ i uświadom sobie, że upadłeś... wypadłeś ze swojego zwykłego stanu twórczego.

Im szybciej to zrobisz, tym szybciej podejmiesz działania, aby wrócić DO SIEBIE!

Jeśli „nie udało Ci się” - Jak wydostać się z dziury 3D

Gdy tylko zdasz sobie sprawę, że to nie otaczający Cię świat nagle stał się szary i nudny, ale sam zacząłeś go tak postrzegać, Twoim głównym zadaniem jest PRZEŁĄCZENIE.

Można to zrobić na różne sposoby:

1. Odtwarzaj muzykę, która Cię inspiruje

Rozdrażnienie, zmęczenie i zły nastrój tworzą wokół Ciebie kokon energii o niskiej wibracji.

Zbierz swoją kolekcję utworów i kompozycji, które pozwolą Ci dostroić się do wyższych wibracji.

Co może być prostszego niż włączenie ulubionych utworów w odtwarzaczu i wykonywanie codziennych czynności!

Zwykle w takim stanie pociąga nas coś melancholijnego, a nawet dekadenckiego, pasującego do nastroju... Zmieńcie się pilnie!

W takich momentach sam włączam Alleluja w wykonaniu Anastazji Dobrovolskiej)))

Kiedy poniesiesz porażkę, czujesz się odizolowany i nikt cię nie docenia ani nie rozumie. Wewnątrz narasta gorycz i użalanie się nad sobą.

W tej chwili twoje serce jest pokryte ciężką zbroją, która ma cię chronić.

Nie da się wejść w stan twórczy z zamkniętym sercem!

Twoim zadaniem jest więc przywrócić własną wrażliwość. Można tego dokonać poprzez praktyki medytacyjne (patrz punkt 6).

Lub połącz korzyści i przyjemność z oglądania dobrego filmu.

Komedie się nie nadają. Potrzebujesz filmu, który dotknie Twojej duszy i wzbudzi empatię!

Na przykład te:

3. Zanurz się w żywych wrażeniach

Twoja dusza karmi się jasnymi kolorami. Daj jej to. Nawet poprzez „nie chcę”!

Wyjdź z domu. chodzić na zakupy, galerie, muzea. W prawdziwym życiu lub wirtualnie (internet na to pozwala).

Mnie osobiście bardzo inspirują światła miasta nocą.

A wczoraj wieczorem znaleźliśmy się w bajce: na zewnątrz była mgła, a my postanowiliśmy wybrać się nad morze... Szum fal, wokół mleczna mgła i hipnotyzujące światło latarni... zupełnie surrealistyczne. Szkoda, że ​​technologia nie jest w stanie oddać tego piękna.

4. Rób to, co kochasz

Kiedy zanurzysz się w tym, co lubisz robić, natrętne myśli, wątpliwości i pytania schodzą na dalszy plan.

Aktywujesz swoją kreatywność i TWORZYSZ.

Być może nie od razu będziesz w stanie złapać motywację do tego, co robisz... najważniejsze jest, aby nie zatrzymywać się w połowie. To jest stan Twoich zasobów i wiesz o tym.

Dlatego nie odkładaj tego na później, poświęć trochę czasu i z pasją zanurz się w tym, co kochasz.

5. Odpocznij na łonie natury

Natura nie ma złej pogody ani złego nastroju. Natura pozwala na naturalną równowagę.

Nawet jeśli idziesz na spacer z całą rodziną, poproś, aby nie dotykać go przez 10 minut. Odsuń się, posłuchaj szumu wiatru, skrzypienia drzew, dotknij szorstkiej kory. Spójrz w niebo. Wchłoń równowagę natury do każdej komórki.

Kiedy już przesuniesz swoją uwagę, czas na następny krok. Teraz jesteś mniej więcej zrównoważony i możesz wykonywać proste praktyki, które pomogą Ci w powrocie do normalnego stanu.

Odpowiednie są wszelkie metody harmonizacji i równoważenia, praktyki otwierania serca i budowania pionowego kanału Ducha, a także praktyki energetyczne mające na celu zwiększenie poziomu energii.

6. Otwórz swoje serce

Twoje żale, roszczenia, złość na siebie i samokrytyka blokują kanały energetyczne Twojego serca kropla po kropli.

7. Poproś o błogosławieństwa i wsparcie swojej Wyższej Jaźni

W chwili porażki czujesz się jak mały człowiek, tak zwyczajny i spontaniczny, że najprawdopodobniej zapominasz, że jesteś nie tylko swoim ciałem, swoimi myślami i uczuciami.

Zapominasz, że istnieje mądrzejsza i bardziej zaawansowana część ciebie – Twoje Wyższe Ja, które nie ingeruje w Twoje życie, dopóki nie NIE pytaj o tym.

Oznacza to: „Proście, a będzie wam dane”!

Jeśli nigdy nie spotkałeś/nie komunikowałeś się z tą częścią siebie, medytacja ci w tym pomoże.

8. Wybacz sobie porażkę.

Bez względu na przyczynę swojego stanu, wiedz, że podświadomie uważasz się za odpowiedzialnego, a w ciężkich przypadkach za winnego tego, co się stało.

Technika oczyszczania Ho'oponopono składa się z 4 kroków: Bardzo mi przykro. Przepraszam. Dziękuję. Kocham cię.

Wiele lat temu, gdy wydawało mi się, że mój świat wali się na moich oczach, w mojej głowie pojawiły się następujące frazy:

Wybaczam ci. Dziękuję. Uwalniam Cię z miłością.

Przez kilka godzin z rzędu powtarzałam je na głos jak mantrę, a potem zdałam sobie sprawę, że zapomniałam o ważnym elemencie i dodałam: wybaczam sobie!

Wybacz sobie to przeżycie. Podziękuj sobie za to. I odpuść z miłością.

9. Śpiewajcie pieśń wdzięczności

Wiele osób ma mistyczne doświadczenia związane z tą piosenką. Aby to zadziałało, ważne jest, aby spełnić 3 warunki: 1) wycofać się na około 15 minut, aby nikt Cię nie rozpraszał i nie czuł się zrelaksowany, 2) włącz głośniki na maksimum, 3) śpiewaj razem z Devą Premalem żeńska część „Hallelujah” w pełnej okazałości.

Alleluja to pieśń wdzięczności. Za wszystko co było i jest w Twoim życiu.

Uchwyć nastrój tej kompozycji i nie wahaj się śpiewać tak, jak potrafisz. Twój głos dostroi się do żądanych wibracji.

A ponieważ ośrodek gardła odpowiada za Twoje wyrażanie siebie na tym świecie, wylewasz nie tylko wdzięczność, ale także wyrażasz to, kim jesteś w głębi duszy, bez masek, pretensji i niepowodzeń.

Spróbuj! Nie pożałujesz!

P.S. Proponuję w komentarzach zamieszczać tytuły filmów, które poruszyły Waszą duszę (utwory muzyczne też nie odmówimy).

P.P.S. Byłbym wdzięczny, gdybyś udostępnił linki do swoich ulubionych filmów na Youtube, moje zapasy już się kończą ((

Pętla danych profilu jest najbardziej złożoną ze wszystkich niestandardowych pętli BuddyPress. W rzeczywistości są to dwie pętle w jednej. Pierwsza służy do przeglądania grup pól profilu, a druga do przeglądania pól profili w tej grupie pól profilu.

Standardowa pętla

Ten użytkownik nie ma profilu.

Akceptowane parametry

Funkcja bp_group_has_profile() akceptuje szereg parametrów, które będą manipulować zwracanymi danymi.

  • id_grupy_profilu opcjonalne

    Domyślnie zostaną wyświetlone wszystkie grupy i wszystkie pola. Jeśli podasz identyfikator grupy pól profilu, zostaną wyświetlone tylko pola z tej grupy.

    • Wartość domyślna: fałsz
  • identyfikator_użytkownika opcjonalne

    Identyfikator użytkownika, dla którego chcesz pobrać dane profilu. Jest to wymagane, jeśli znajdujesz się poza adresem URL profilu członka (/members/andy/…), w przeciwnym razie jest to identyfikator wyświetlanego użytkownika.

    • Wartość domyślna: bp_displayed_user_id()
  • typ_elementu opcjonalny

    Ogranicz pola do pól ograniczonych do danego typu elementu członkowskiego lub tablicy typów elementów członkowskich. Jeśli podano $user_id, wartość $member_type zostanie zastąpiona przez typy członkowskie podanego użytkownika. Specjalna wartość „any” zwróci tylko te pola, które nie są ograniczone przez typ elementu członkowskiego – tj. te, które mają zastosowanie do dowolnego typu.

    • Wartość domyślna: fałsz
  • hide_empty_groups opcjonalne

    Domyślnie puste grupy nie będą wyświetlane. Jeżeli podasz wartość 0, to zostaną wyświetlone wszystkie grupy.

    • Wartość domyślna: prawda
  • hide_empty_fields opcjonalne

    Domyślnie wyświetlaj puste pola tylko wtedy, gdy jesteśmy na pulpicie nawigacyjnym, jesteśmy na stronie edycji profilu użytkownika lub jest to strona rejestracji. Jeśli podasz wartość 0, to na Twojej stronie zostaną wyświetlone wszystkie pola.

    • Wartość domyślna: !is_network_admin() && !is_admin() && !bp_is_user_profile_edit() && !bp_is_register_page()
  • fetch_fields opcjonalne

    Określa, czy pobierać pola każdej grupy.

    • Wartość domyślna: fałsz
  • fetch_fields_data opcjonalne

    Określa, czy pobierać dane dla każdego pola. Wymaga $user_id .

    • Wartość domyślna: fałsz
  • wykluczone_grupy opcjonalne

    Rozdzielana przecinkami lista lub tablica identyfikatorów grup do wykluczenia.

    • Wartość domyślna: tablica()
  • wyklucz_pola opcjonalne

    Rozdzielana przecinkami lista lub tablica identyfikatorów pól do wykluczenia.

    • Wartość domyślna: tablica()
  • update_meta_cache opcjonalne

    Określa, czy pobierać z wyprzedzeniem xprofilemeta dla wszystkich pobranych grup, pól i danych.

    • Wartość domyślna: prawda

Zaawansowane użycie

Pobierz wszystkie dane profilu użytkownika o identyfikatorze 10 .

Pobierz dane profilu dla pól w grupie profili ID 2 dla użytkownika o ID 10 .

Pobierz dane profilu dla pól w grupie profili ID 2 .

Pobierz wszystkie dane profilu, nawet puste pola i grupy, dla bieżącego użytkownika.

Pobierz wszystkie dane profilu użytkownika o identyfikatorze 10, z wyłączeniem pól o identyfikatorach 5, 6, 7.

Profilowanie aplikacji to zbieranie danych o szybkości wykonywania różnych sekcji programu (plików i funkcji). Istnieje wiele narzędzi Profilowanie PHP, ale nie wszystkie narzędzia nadają się do wykonywania analiz bezpośrednio w produkcji.

XHProf- mega prosty profiler, który zbiera statystyki bezpośrednio podczas działania aplikacji, prawie bez narzutów.

Dlaczego profil?

Jeśli aplikacja zacznie działać wolno, profilowanie może pomóc w ustaleniu, która część działa wolno. Wynikiem profilowania jest zazwyczaj lista wykonanych funkcji i czas ich wykonania.

Profilowanie należy przeprowadzić przed jakąkolwiek optymalizacją aplikacji. W przeciwnym razie będziesz kierować się domysłami. Najprawdopodobniej błędne.

Problem z Xdebugem

Xdebug to potężne rozwiązanie dla PHP. Ale sama platforma Xdebug jest tak ciężka, że nie można używać w aktywnych witrynach. XDebug powoduje znaczne obciążenie zasobów serwera i spowalnia aplikację.

Z drugiej strony problemy występujące w działającej witrynie mogą zupełnie różnić się od problemów występujących w środowisku programistycznym. Profilowanie tylko na komputerach programistów pokaże tylko część problemów.

Dlatego też opracowano to rozwiązanie XHprof. Jest przeznaczony do użytku w uruchomionych aplikacjach. Główną ideą tego profilera jest stworzenie minimalnego obciążenia aplikacji przy jednoczesnym zebraniu wszystkich niezbędnych danych na temat szybkości działania. Rozwiązanie zostało opracowane przez chłopaków z Facebooka i jest wspierane przez nowe wersje PHP.

XHProf

Instalacja

W Debianie XHprof znajduje się w pakietach sid, więc: apt-get install xhprof

Możesz także samodzielnie zbudować XHprof.

Włącz profilowanie

Załóżmy, że mamy skrypt z następującym kodem:

wykonać();

Przeprowadźmy profilowanie za pomocą XHprof. Aby to zrobić na tej stronie, potrzebujesz:

  1. Włącz profiler na samym początku.
  2. Na samym końcu programu zatrzymaj profiler i zapisz otrzymane dane.

Będzie to wyglądać tak:

# Zainicjuj profilerxhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); # Uruchom program po włączeniu profilera wykonać(); # Zatrzymaj profiler po uruchomieniu programu$xhprof_data = xhprof_disable();

# Zapisz wynik profilowania do zmiennej $xhprof_data

  • Funkcjonować xhprof_enable() przyjmuje flagi jako argumenty. XHPROF_FLAGS_CPU do rejestrowania statystyk procesora, XHPROF_FLAGS_MEMORY dla pamięci, XHPROF_FLAGS_NO_BUILTINS do ignorowania wbudowanych funkcji.
  • xhprof_disable() wyłączy profiler i zwróci zebrane statystyki.

Raporty

Generacja

Zebrane dane można analizować w interfejsie XHprof w celu generowania raportów. Aby to zrobić, musisz pobrać źródła XHprof: cd /var/www; wget http://pecl.php.net/get/xhprof-0.9.4.tgz gzip -d xhprof-0.9.4.tgz tar -xvf xhprof-0.9.4.tar

Następnie musisz wprowadzić zmiany w skrypcie:

include_once "/var/www/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php"; include_once "/var/www/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = nowy XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "test");

# Nowy kod zapisuje raport do wykorzystania w GUI

Interfejs do raportów

Aby zobaczyć raport, musisz skonfigurować hosta wirtualnego w folderze /var/www/xhprof-0.9.4/xhprof_html. Na przykład w Nginxie:

Serwer ( nazwa_serwera xh..9.4/xhprof_html; indeks indeks.php; lokalizacja ~* \.(php)$ ( fastcgi_pass 127.0.0.1:9000; fastcgi_index indeks.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; ) ) nginx -s przeładuj

Następnie pojawi się lista raportów:

Tabela zawiera listę funkcji, które zostały wykonane w ramach jednej strony, wraz z dodatkowymi informacjami:

  • Wywołania — liczba i procent wywołań funkcji.
  • Zawiera Wall Time — czas wykonania funkcji z funkcjami zagnieżdżonymi.
  • Wyłącznie Czas ściany to czas wykonania funkcji bez funkcji zagnieżdżonych.
  • Zawiera CPU - czas procesora z funkcjami zagnieżdżonymi.
  • Wyłącznie CPU - czas procesora bez funkcji zagnieżdżonych.
  • Zawiera MemUse - zużycie pamięci przez funkcje zagnieżdżone.
  • Wyłącznie MemUse - zużycie pamięci bez funkcji zagnieżdżonych.
  • Zawiera PeakMemUse - maksymalne zużycie pamięci przy zagnieżdżonych funkcjach.
  • Wyłącznie PeakMemUse - maksymalne zużycie pamięci bez zagnieżdżonych funkcji.

Raporty graficzne

Aby utworzyć raport graficzny, upewnij się, że masz zainstalowany graphviz: apt-get install graphviz

Sekcje kodu wymagające dużej ilości zasobów są wyróżnione kolorem żółtym (średni) i czerwonym (najcięższy). Są to te sekcje kodu, które zużywają dużo zasobów w porównaniu z resztą programu. Może to być jedna powolna funkcja lub wiele wywołań szybkiej funkcji. W naszym przykładzie funkcja str_replace() oznaczony na czerwono ze względu na połączenia 262.

Raporty zbiorcze

Interfejs XHprof umożliwia także przeglądanie zbiorczych informacji z kilku raportów jednocześnie. W tym celu przekazywany jest identyfikator run_id oddzielony przecinkami: http://xh..php?run= 53a894f6d5d9b,53a894fcf126e&źródło=test

TL;DR

Użyj XHprof do profilowania PHP bezpośrednio w środowisku produkcyjnym.

Korzystając z systemów profilowania, możesz zbierać informacje o tym, które funkcje w kodzie PHP zużywają więcej czasu procesora i pamięci RAM, czyli identyfikować najwolniejsze i najbardziej wymagające pamięci miejsca w programie PHP.

xhprof

XHProf - profiler PHP opracowany przez Facebooka.

Instalacja:

Aptitude zainstaluj php-pear pecl zainstaluj xhprof-0.9.4 echo "extension=xhprof.so" > /etc/php5/mods-available/xhprof.ini ln -s /etc/php5/mods-available/xhprof.ini /etc /php5/conf.d/xhprof.ini uruchom ponownie apachectl

Pliki niezbędne do pracy znajdują się w katalogu /usr/share/php. Jednak nie wszystko, ale tylko z kodem PHP. Do normalnego wyświetlania raportów wymagane są jquery i css. Można je uzyskać z repozytorium github:

Klon Gita https://github.com/facebook/xhprof.git

Następnie dodaj linię do kodu skryptu PHP w miejscu, w którym powinno rozpocząć się zbieranie danych:

Xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

Parametry zbierania danych podano w nawiasach. W takim przypadku zbierane będą dane dotyczące obciążenia procesora i wykorzystania pamięci RAM. Możliwa jest jeszcze jedna opcja XHPROF_FLAGS_NO_BUILTINS w przypadku użycia dane o funkcjach wbudowanych nie są zbierane.

$xhprof_data = xhprof_disable(); include_once "xhprof_lib/utils/xhprof_lib.php"; include_once "xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = nowy XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_test"); echo "Raport: http://domain.tld/xhprof_html/index.php?run=$run_id&source=xhprof_test"; echo "\n";

W kolejce $run_id Cudzysłowy oznaczają nazwę profilu, którą można ustawić dowolnie.

Przetworzony wynik wygląda następująco:

Jeśli określisz parametr XHPROF_FLAGS_NO_BUILTINS, widać, że liczba wywołań funkcji jest znacznie zmniejszona:

Tabela zawiera następujące informacje:

Połączenia- liczba wywołań funkcji,
Czas na ścianę- całkowity czas działania funkcji, uwzględniający czas oczekiwania na odpowiedź z zasobów zewnętrznych,
Procesor- ile czasu zajęło przetwarzanie funkcji,
Użyj pamięci- ile pamięci RAM zostało wykorzystane,
Szczytowe wykorzystanie pamięci- szczytowe zużycie pamięci.

Modyfikatory to:

Zawiera- włącznie - uwzględnia wywołania innych funkcji z tej funkcji,
Wyłącznie- wyłączne - z wyłączeniem wywołań funkcji.

Dodatkowo nad tabelą znajduje się informacja o całkowitym czasie przetwarzania, wykorzystanej pamięci oraz liczbie wywołań funkcji.

Również XHProf umożliwia budowanie raportów różnic pomiędzy dwoma przebiegami, które są oznaczone kolorami czerwonym i zielonym. Dzięki tym raportom możesz uzyskać jasny obraz ulepszeń po każdej zmianie kodu.

Aby otrzymać taki raport należy skorzystać z takiego linku:

http://domain.tld/xhprof_html/index.php?run1=run_id1&run2=run_id2&source=xhprof_test

Gdzie run_id1 I run_id2- identyfikatory uruchomienia.

Jeśli zainstalujesz Grafwiz:

Aptitude zainstaluj graphviz

Istnieją również interfejsy internetowe innych firm dla profilera php xhprof, które korzystają z baz danych:

xDebug

xDebug- Debuger kodu PHP z możliwością profilowania, napisany przez Dericka Rethansa.

Instalacja:

Mniam, zainstaluj php5-xdebug

Następnie edytujemy konfigurację:

Nano /etc/php5/mods-available/xdebug.ini

dodając do niego linie:

Xdebug.profiler_enable = 1 xdebug.profiler_aggregate = Wł. xdebug.profiler_output_dir = /tmp

Tutaj włączamy profiler PHP i określamy katalog, w którym mają być przechowywane profile. Profile są tworzone z nazwami takimi jak cachegrind.out.*

Istnieje klient WWW webgrind: https://github.com/jokkedk/webgrind. Nie działa to bardzo szybko, ale pozwala na szybkie przeglądanie małych profili. W rzeczywistości jest to kod PHP, który należy sklonować z githuba:

Klon Gita https://github.com/jokkedk/webgrind.git

zostanie utworzony katalog webgrind, który należy skopiować do katalogu dowolnej witryny internetowej i uzyskać do niego dostęp z poziomu przeglądarki. Następnie, aby kreślenie w pliku konfiguracyjnym działało w Debianie config.php musisz poprawić ścieżkę do pliku wykonywalnego grafwiz. Powinno to wyglądać tak:

Statyczny $dotExecutable = "/usr/bin/dot";

Ponadto możesz dostosować strefę czasową:

Static $defaultTimezone = "Europa/Moskwa";

W nagłówku możesz wybrać profil i zaznaczyć pole, aby uwzględnić wbudowane funkcje. Sama tabela pokazuje funkcje, liczbę połączeń, czas działania samej funkcji i czas łącznie z oczekiwaniem. Aby wejść głębiej w funkcje, wystarczy kliknąć trójkątną strzałkę. W moim przypadku przy dość dużych profilach (od kilku megabajtów) czas oczekiwania na wynik był niepotrzebnie długi. W przypadku dość dużych profili prawdopodobnie lepiej jest używać lokalnych programów do przeglądania.

Wykres może wyglądać następująco:

zauważ to webgrind nie należy używać na serwerach produkcyjnych, ponieważ nie ma autoryzacji, ale jest dostęp do kodu pliku php. Jeśli to konieczne, użyj przynajmniej podstawowej autoryzacji Apache.

Istnieją również programy do analizy profili dla systemu Linux:

O profilowaniu

Dane profilowe mogą pomóc w ulepszeniu aplikacji, czyli osiągnięciu określonych celów, na przykład zmniejszeniu zużycia pamięci, skróceniu czasu generowania strony i tak dalej.

Informacje zawarte w profilu są punktem wyjścia do optymalizacji: mówią, ile czasu zajmuje wygenerowanie wyniku, ile pamięci jest wykorzystywane i ile jest wykonanych wywołań funkcji. Dzięki bardziej szczegółowym danym możesz poprawić te wskaźniki.

Na przykład, jeśli używasz frameworka, wówczas użycie niektórych funkcji frameworku może prowadzić do wywołań kilku podstawowych funkcji. Jeśli czytasz niektóre dane wielokrotnie, warto zapisać wynik w zmiennej.

Profiler może również pomóc Ci zrozumieć, gdzie używać buforowania kodu PHP, na przykład za pomocą APCu Lub memcached.

Przede wszystkim warto zoptymalizować funkcje, które wymagają najwięcej czasu wykonania. Gdy już wszystko jest zoptymalizowane i wydaje się, że nie ma już co poprawiać, warto posortować funkcje po liczbie połączeń i popracować nad jej zmniejszeniem. Nawet jeśli PHP jest szybkie, warto zastanowić się, czy funkcje nie muszą być wywoływane tak często?

Jeśli napotkasz następujące sytuacje, powinieneś rozważyć buforowanie:

  • Funkcje niezmienne wywoływane są wewnątrz pętli,
  • Niektóre treści są generowane dwukrotnie,
  • Za każdym razem generowana jest niezmienna treść,
  • Treść jest generowana, nawet jeśli nie jest używana.

Nie powinieneś buforować wszystkiego, ponieważ pamięć jest również cennym zasobem. Buforuj dane, do których stale uzyskujesz dostęp. Ponadto buforowanie nie ma większego sensu, jeśli buforowanie marnuje więcej zasobów niż oszczędza.

Oprócz buforowania w kodzie nie zapomnij o buforowaniu za pomocą serwera WWW (), a także po stronie klienta. Jeśli użyjesz właściwych nagłówków, wiele żądań można obsłużyć, zanim w ogóle dotrą one do serwera.