Мое приложение PHP работает немного медленно, и на данный момент оно не очень эффективно. Весь мой сервер идет очень часто, и я думаю, что это приложение виновато. Я думал, что контролировать использование памяти и проверить, сколько у меня есть как предел:PHP memory_get_usage больше, чем memory_limit
echo 'Memory in use: ' . memory_get_usage() . ' ('. memory_get_usage()/1024 .'M) <br>';
echo 'Peak usage: ' . memory_get_peak_usage() . ' ('. memory_get_peak_usage()/1024 .'M) <br>';
echo 'Memory limit: ' . ini_get('memory_limit') . '<br>';
Это показывает следующее:
Memory in use: 629632 (614.921875M)
Peak usage: 635696 (620.796875M)
Memory limit: 128M
Как это могло быть? Используемая память WAY больше, чем ограничение памяти? Либо что-то действительно сломано, либо я совсем не понимаю, как работает memory_limit
(или memory_get_usage()
)
Спасибо всем.
[memory_get_usage] (http://php.net/manual/en/function.memory-get-usage.php) возвращает его в байтах, что вы вычисляете есть на самом деле в 'kB'. Разделите его на '1024', чтобы он был в' MB' – AmazingDreams
Ваша математика отключена на порядок. Разделите его на другой 1024, чтобы получить мегабайты. – datasage