Autor Zpráva
phpcko
Profil *
Zdravím,

Co vlastně vypíše memory_get_usage? Je to využití paměti skriptem, ve kterém mám <?php echo memory_get_usage() ?> nebo je to celkové využití paměti veškerých běžících php skriptů?

děkuji za odpověd
okolojsoucí
Profil
Zkoušel jsi číst dokumentaci?

Budu hodný, odcituji ti to.
Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.
phpcko
Profil *
Aha , a dá se nějak zjistit celkové využití paměti veškerých běžících php skriptů?
DJ Miky
Profil
Aktuálně běžící proces neví o ostatních, takže čistě v PHP to nezjistíš. Musíš si pomoct čtením systémových informací (např. z /proc na Linuxových systémech) nebo zavoláním externího programu, který je agreguje za tebe (např. ps, opět na Linuxu). K ničemu z toho ale obvykle nebudeš mít na sdíleném hostingu přístup, protože spouštění externích programů přes funkce jako exec() nebo system() bývá zakázané a do adresáře /proc nebudeš mít přístup kvůli nastavení direktivy open_basedir.
phpcko
Profil *
Já nemám vlastní unixový server kde bych mohl zadávat příkazy. Mám web na obyčejném hostingu kde je memory limit a já bych potřeboval zjistit např. kolik paměti je využito. Např. ve wordpressu je pro to nějaké rozšíření a ukazuje to kolik je využito paměti z memory limitu (http://tokokoo.com/blog-temp/wp-content/uploads/2010/12/memory2.jpg) Nevím jak je to dokázáno když píšete, že memory_get_usage platí pro script z nějž je požadavek na výpis memory_get_usage. Chtěl bych něco takového jako je v tom wordpressu, ale nemám wordpress ale vlastní systém.


To je na tom WP uděláno tak, že se měří memory_get_usage na každém skriptu a pak se to nějak sčítá nebo jak?
DJ Miky
Profil
Dané rozšíření neznám, ale podle obrázku nejspíš počítá také jen aktuální proces. Ukazatel využití tam vznikl podělením paměti využité aktuálním skriptem a limitem nastaveným pro WordPress (v obrázku WP Memory Limit, ale neznám WP, takže nevím, co to přesně je). Globální memory_limit (v obrázku PHP Memory Limit) je tam pouze vypsán.
phpcko
Profil *
Nechce se mi věřit, že by WP běžel jen na jednom skriptu.
Kubo2
Profil
phpcko:
Neviem, ako to presne myslíš. WP beží na jednom skripte, ktorý sa skladá prípadne z ďaľších vložených súborov. (Pojmom skript v tomto príspevku aliasujem jeden PHP proces.)
memory_limit, pokiaľ sa dobre pamätám, je tiež obmedzenie pamäte len pre jeden proces (= každý proces môže alokovať memory_limit pamäte, nie viac).
Proces sa vytvorí ako reakcia či spracovanie HTTP požiadavku. Tých požiadavkou môže na server prísť súčasne viac, preto server spustí naraz viac skriptov (s tým súvisí problematika (ne)atomicity a ďaľšie veci, ale to je príliš mimo tému.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: