После того как я протестировал свой сайт на уязвимости и нагрузку, у сервера началась кончатся оперативаня память. Задался целью проверить сколько памяти используют те или иные скрипты.
Например блог вордпресса использует от 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: memory_get_usage, php, использование памяти, скрипт
Ух ты, я и не знал что можно узнать используемую память. Вот только как это поможет?
Как в WP уменьшать нагрузку и количетсво используемой памяти?
Для уменьшения нагрузки я использовал кеширующий плагин “hyper-cache”, а вот уже в своих проектах проверяю чтобы скрипт меньше памяти кушал, а то пока он не выполнится он не освобждает память.
Выяснил, что при подключении библиотеки ADODB тратится 1.12 мб. памяти, фигово это, надо думать как оптимизировать подключение к б.д. и оно оставалось универсальным.
Если кэшировать данные до подключения классов, то памяти используется намного меньше, у меня вышло 90кб. вместо 1.28 мб. и скорость выполнения скрипта увеличилось на немного (хотя и использовал встроенную функцию кеширования запросов в ADODB).
Я не понял вот какого момента. Я использую эту функцию, и у меня всегда выводится результат кратный 256 килобайтам.
То есть 256, 512, 768 и так далее. Это случайность или специфическая особенность?
Не знаю, у меня пишет “использовано 90.48 кб”, стоит апач, freebsd, php4.
На других хостингах тоже все норм.
выше описанный метод для случаев, когда в тестируемом файле-скрипте всегда выполняются все команды, то есть когда нет где-то в середине скрипта или функции условий, таких как return; и тому подобных.