Pytanie Jakie jest dopuszczalne użycie pamięci dla strony PHP? [Zamknięte]


Buduję stronę internetową, która wysyła zapytanie do bazy danych MySQL i (obecnie) tworzy listę wyników tylko tekstowych. Zapytania o wypełnienie pojedynczego rekordu są podobne do:

  • film (tytuł, opis itp.)
    • aktorzy w filmie (imię, płeć)
    • powiązane filmy

Z ciekawości, której użyłem memory_get_peak_usage() i memory_get_usage():

uruchom 110 440 bajtów
maksimum 656 056 bajtów
koniec 637 986 bajtów
czas 0,008 sekundy

Powyższe dane nie zawierają żadnych rekordów!

Z 40 rekordami osiągam około 2MB, chociaż czas pozostaje ten sam.

Wiem, że przedwczesna optymalizacja to zło i wszystko, ale muszę zapytać:

Czy muszę wykonać przeróbkę? Czy to użycie pamięci jest normalne? Co uważa się za nadmierne?


14
2017-10-24 06:00


pochodzenie




Odpowiedzi:


Ostatecznie lepiej jest optymalizować, gdy jest to wygodne, ale 2 MB użycia pamięci brzmi dobrze. PHP4 ma domyślną konfigurację 8mb, a PHP5 16mb. Wiele wstępnie skompilowanych wersji PHP będzie oczywiście miało różne konfiguracje, ale ogólnie rzecz biorąc, jeśli utrzymasz swoją aplikację poniżej 8 MB, możesz być pewny, że będzie to bardzo przenośne pod tym względem.


12
2017-10-24 06:29





Oczywiście wszystko zależy od złożoności tworzonej aplikacji. Średnio strony naszej aplikacji zajmują do 20 MB (min) pamięci. Dzieje się tak, ponieważ w sesji jest wiele obiektów i wiele procesów inicjalizacyjnych, które mają miejsce zanim skrypt będzie mógł powiedzieć "cześć świat" (uwierzytelnianie, zarządzanie prawami, powiadomienia, ...)

W przestrzeni pamięci jest wiele rzeczy, w tym definicje klas, globale, definicje funkcji itp. Zmniejszenie ilości ładowanych klas (przy użyciu funkcji automatycznego dołączania) jest dobrym sposobem na zachowanie skryptów przy użyciu tylko niezbędnej ilości definicje klas.

Nie wiem, czy ładowanie rozszerzeń zmienia użycie pamięci - to powinno być coś do przetestowania, ponieważ domyślnie możemy nie potrzebować wszystkich domyślnych załadowanych rozszerzeń?


8
2017-10-24 08:09





Osobiście ustawiam limit na 8 MB. Jeśli przekroczę to, spróbuję poprawić moją aplikację. Powodem jest to, że niektóre współdzielone hosty i konfiguracje PHP 4 mają domyślny limit 8 MB na proces.


3
2018-05-11 14:34





PHP nie zwalnia pamięci podczas wykonywania skryptu, więc twój limit pamięci musi być tak wysoki, jak najwięcej pamięci, którą jeden skrypt zużyje. Jeśli najbardziej zajmie skrypt, to 2MB, a następnie ustaw go na 2MB, ale jeśli potrzebujesz 780MB, ustaw go na taki.

Posiadamy duże systemy produkcyjne z limitem pamięci ustawionym na ponad 2 GB. Ale jest to oczywiście wysoce dostrojone dla nas i naszego scenariusza, nigdy bym go nie wspierał w dzielonych środowiskach hostingowych.


2
2018-05-11 14:53





Tak długo, jak planujesz dobry mechanizm buforowania (pamięć podręczna kodu, pamięć podręczna obiektów itp.), Użycie pamięci staje się mniej istotne. Wciąż jesteś poniżej zwykłego wykorzystania pamięci php.


0
2017-10-24 08:25





PHP zna limity zasobów do których wersji używasz. Obecna wersja może obsłużyć 128 MB, PHP 5.2.0 = 16 MB i wszystkie poprzednie wersje 8 MB.


-1
2018-02-22 20:32