проблема выделения памяти - PHP - PullRequest
0 голосов
/ 11 декабря 2010

У меня действительно странная проблема:

Fatal error: Allowed memory size of 134217728 bytes exhausted 
(tried to allocate 21748 bytes) 

Я понимаю эту ошибку, однако я отслеживаю все выделение памяти для скрипта и не превышаю ее: всего 2883584.

Строкадо того, как сработала фатальная ошибка, реальное использование памяти находится на уровне 2883584. Как описано в приведенной выше ошибке, скрипт пытается выделить только дополнительные 21748, которые в любом случае не увеличиваются до 134217728.

Есть идеи, почему так?

PS для использования памяти Я использую: memory_get_usage(true) функция.

Ответы [ 2 ]

1 голос
/ 11 декабря 2010

Рассмотрите возможность передачи true в memory_get_usage, что вернет истинный объем выделенной системной памяти (а не просто emalloc использование). Время выполнения, вероятно, относится к системной памяти, используемой при завершении скрипта, которая может быть намного выше (например, через расширения, которые не являются emalloc значениями).

0 голосов
/ 12 декабря 2010

ОК, так что я думаю, что обнаружил проблему.Как выясняется, если есть жесткий образ для обработки памяти выделения GD2, но вы не можете увидеть его в memory_get_usage и get_peak, так что довольно глупо, но ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...