Сколько использует памяти php скрипт?

После того как я протестировал свой сайт на уязвимости и нагрузку, у сервера началась кончатся оперативаня память. Задался целью проверить сколько памяти используют те или иные скрипты.
Например блог вордпресса использует от 5 до 12 мб, и это довольно много. Причем старые версии использовали до 5 мб.
Проверил свои скрипты, они требуют намного меньше памяти, до 2 мб. Причем при кешировании размер используемой памяте не менялся, надо пересмотреть принцип кеширования и отключать дополнительные инклуйды модулес системы.

Вот код для вывода используемой памяти:
if( function_exists(’memory_get_usage’) ) {
$mem_usage = memory_get_usage(true);
if ($mem_usage < 1024)
echo $mem_usage.” bytes”;
elseif ($mem_usage < 1048576)
$memory_usage = round($mem_usage/1024,2).” кб”;
else
$memory_usage = round($mem_usage/1048576,2).” мб”;
}

Выводится это дело командой:
echo $memory_usage;

Под windows данный метод не работает, т.к. нет доступа к функции, а если использовать сторонние методы или утилиты то результат все равно будет не точным, т.к. на Вашем хостинге могут использоваться разные кеширующие системы или оптимизаторы.

Tags: , , ,

7 Responses to “Сколько использует памяти php скрипт?”

  1. Sceptic пишет:

    Ух ты, я и не знал что можно узнать используемую память. Вот только как это поможет?
    Как в WP уменьшать нагрузку и количетсво используемой памяти?

  2. admin пишет:

    Для уменьшения нагрузки я использовал кеширующий плагин “hyper-cache”, а вот уже в своих проектах проверяю чтобы скрипт меньше памяти кушал, а то пока он не выполнится он не освобждает память.

  3. admin пишет:

    Выяснил, что при подключении библиотеки ADODB тратится 1.12 мб. памяти, фигово это, надо думать как оптимизировать подключение к б.д. и оно оставалось универсальным.

  4. admin пишет:

    Если кэшировать данные до подключения классов, то памяти используется намного меньше, у меня вышло 90кб. вместо 1.28 мб. и скорость выполнения скрипта увеличилось на немного (хотя и использовал встроенную функцию кеширования запросов в ADODB).

  5. dizelbox пишет:

    Я не понял вот какого момента. Я использую эту функцию, и у меня всегда выводится результат кратный 256 килобайтам.
    То есть 256, 512, 768 и так далее. Это случайность или специфическая особенность?

  6. admin пишет:

    Не знаю, у меня пишет “использовано 90.48 кб”, стоит апач, freebsd, php4.
    На других хостингах тоже все норм.

  7. fedor пишет:

    выше описанный метод для случаев, когда в тестируемом файле-скрипте всегда выполняются все команды, то есть когда нет где-то в середине скрипта или функции условий, таких как return; и тому подобных.

Leave a Reply