Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pamięć zużyta na wykonanie skryptu PHP
Forum PHP.pl > Forum > PHP
Piotrbaz
Witam,

Tworząc prostą klasę do "benchmarku" skryptu PHP nie można pominąć zużywanej pamięci. Tak, wiem: memory_get_usage(). Temat wałkowany w sieci na wszystkie sposoby, ale dalej mam z tym problem facepalmxd.gif
Cytat
Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.


Ok, ale co ta wielkość tak naprawdę oznacza ? Albo inaczej, co składa się na taką a nie inną wartość. Inaczej to wygląda na localhost, a inaczej na serwerze.

Odpalając:
  1. <?php
  2. ?>


otrzymuję już jakieś wartości. Gdy wywołam tą funkcję na końcu swojego skryptu, wyświetla mi dokładnie podwojoną wartość tego, co było przed skryptem.

Czy wobec tego, poniższa forma ma jakikolwiek sens?
  1.  
  2. <?php
  3. $start = memory_get_usage();
  4.  
  5. // skrypt się mieli
  6.  
  7. $koniec = memory_get_usage();
  8.  
  9. echo ($koniec-$start);
  10.  
  11.  
  12. ?>
  13.  


Pozdrawiam
Crozin
Cytat
Ok, ale co ta wielkość tak naprawdę oznacza
Dokładnie to co podano w manualu.
Cytat
Albo inaczej, co składa się na taką a nie inną wartość. Inaczej to wygląda na localhost, a inaczej na serwerze.
Przede wszystkim będą to zmienne, a raczej ich zawartość. Na różnych serwerach możesz mieć różne środowisko w którym uruchamiane są Twoje skrypt, które będzie zużywać różną ilość pamięci.
Cytat
Odpalając:
  1. <?php
  2. ?>
otrzymuję już jakieś wartości.
Bo skrypt potrzebuje już pamięci chociażby do udostępnienia zmiennych typu $_SERVER, trzeba przydzielić pamięć na bufory wyjścia itp. itd.
Cytat
Czy wobec tego, poniższa forma ma jakikolwiek sens?
  1. <?php
  2. $start = memory_get_usage();
  3.  
  4. // skrypt się mieli
  5.  
  6. $koniec = memory_get_usage();
  7.  
  8. echo ($koniec-$start);
  9.  
  10.  
  11. ?>
Ma sens - zwróci Ci to różnicę aktualnego zużycia pamięci w dwóch konkretnych momentach działania programu, ale zapewne Ciebie interesuje maksymalne zużycie pamięci w trakcie działania skryptu - wtedy użyj memory_get_peak_usage.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.