2013-09-19 2 views
6

PHP manual говорит:Что делает memory_get_peak_usage (true)?

int memory_get_peak_usage ([ bool $real_usage = false ])

Возвращает пик памяти в байтах, который был выделен на ваш PHP скрипт.

Параметры

real_usage

Установите это значение TRUE, чтобы получить реальный размер памяти, выделенной из системы. Если не задано или FALSE, сообщается только память, используемая emalloc().

Так как это emalloc() не реального использования, и как TRUE вычислить реальное использование памяти тогда?

This question on StackOverflow запрашивает одно и то же, но единственный ответ не погружается в подробности о том, как выполняется вычисление, кроме округления некоторых распределений до следующего килобайта.

Более обширный ответ на то, что происходит под капотом, когда вы используете FALSE и TRUE?

+3

См. Здесь: http://stackoverflow.com/questions/6202041/php-memory-get-peak-usagefalse-when-should-i-use-true – user1578653

+0

@ user1578653 Действительно, это дубликат, спасибо за указатель. Однако любой лучший ответ был бы оценен. – Benjamin

+0

Обновлен мой вопрос. – Benjamin

ответ

3

Этот вопрос является дубликом, как указано выше.

Однако, я думаю, что я должен суммировать мое понимание с различных ответов и комментариев:

  • memory_get_peak_usage(false) возвращает точную память, используемую PHP скрипт. Используйте для сравнения точного потребления памяти в разных разделах скрипта PHP.
  • возвращает память , выделенную из системы для скрипта PHP, она всегда выше, потому что механизм Zend выделяет память в блоках размером 256 КБ. Используйте, чтобы узнать реальное влияние данного PHP-скрипта на систему.

Так в основном, memory_get_peak_usage(true) должны быть memory_get_peak_usage(false) округляется до следующего 256KB.

+0

Округленный до 256? Не зависит ли эта платформа? – Pacerier

Смежные вопросы