Monitoring využití paměti
- Cars Tomas
- Člen | 43
Ahoj,
potřeboval bych poradit jakým způsobem monitorovat využití paměti php.
Mám aplikace postavenou na Nette/Doctrine a spouštím příkaz přes konzoli a
něco mi tam žere paměť tak, že to po chvíli vyhodí:
Error: Allowed memory size of 134217728 bytes exhausted (tried to
allocate 64 bytes) in
Potřeboval bych zjistit, která proměnná, popř. co a kde se mi plní tak,
že to po chvíli spadne.
Nechci to řešit zatím navyšováním paměťového limit.
Moc děkuji za každou radu.
- Roman Halaxa
- Člen | 60
Možná ti to vůbec nepomůže a problém je někde jinde ale tohle se mi stávalo když jsem se pokoušel dumpnout nějakou proměnnou a měl nastavený moc vysoký maxDepth u Tracy.
V config.neon
tracy:
maxDepth: Tohle číslo bylo moc velké (teď tam mám 4)
Editoval Roman Halaxa (15. 2. 2019 14:48)
- Phalanx
- Člen | 310
@CarsTomas Na problematická místa si zkus vypsat využití paměti
<?php
public function logMemoryUsage()
{
$memory = memory_get_usage();
$unit = array('b','kb','mb','gb','tb','pb');
$memory = @round($size/pow(1024,($i=floor(log($size,1024)))), 2).' '.$unit[$i];
\Tracy\Debugger::log("Memory {$memory}", ILogger::INFO);
}
public function doSomething()
{
$this->logMemoryUsage();
// some logic
$this->logMemoryUsage();
}
?>