Определение расходов памяти на выполнение PHP - скрипта
Интернет, Проекты 24.11.2009Многие сталкиваются с довольно сложной проблемой - определить какой скрипт на вашем сайте (хостинге) потребляет слишком много выделенной памяти.
В этой статье я приведу пример того как можно без особых сложностей определить какой скрипт съедает много памяти.
Итак, для начала опишу принцип:
Мы будем определять количество выделенной памяти до выполнения скрипта и после. Для этого будем использовать функцию memory_get_peak_usage(true)
Для этого создадим файл:
mem_log_past.php
// Получаем сколько памяти выделено когда скрипт отработал
$AllocMem = round(mmemory_get_peak_usage(true)/1024);
// Если больше 3000 кб, то логируем.
if ($AllocMem>3000)
{
$dtm=date(’Y-m-d’);
// Путь к файлу лога
$fn=’/home/user/logs/mem-’.$dtm.’.log’;
$txt="
Перерасход памяти: ".($AllocMem)." Kb
Скрипт: ".$_SERVER['SCRIPT_FILENAME']."
Ссылка: ".$_SERVER['REQUEST_URI']."
";
file_put_contents($fn,$txt,FILE_APPEND);
}
Этот файлы должен использоваться после выполнения скрипта.
Сделать это просто с помощью переменной в php.ini:
auto_append_file =/home/user/logs/mem_log_past.php
Если у вас нет доступа к php.ini, то вы можете прописать её в файле .htaccess вашего сайта:
php_value auto_append_file "/home/user/logs/mem_log_past.php"
На этом всё:
Теперь в папке /home/user/logs/ будут создаваться файлы с описанием где и на сколько превышен лимит памяти.
Кроме этого в исходном коде страниц вашего сайта, пролистав код в самый низ, вы увидите сколько памяти потрачено на генерацию текущей страницы.


24.11.2009 в 15:10
У меня все сайты нормально потребляют, до 3 мб, а вот те что на движке WordPress (включая этот блог) жрут память как потерпевшие (от 6 до 13 мб)
25.11.2009 в 03:14
У тебя блог еще и очень долго грузится, даже при моем быстром питерском соединении. Подозреваю, что кроме всего прочего в этом виновата графика на главной (кстати, после редизайна, кажется, получше стало). Мой stand along тоже тормозит неимоверно, но это, по большому счету, издержки использования зарубежного хостинга.
25.11.2009 в 21:48
Не знаю даже что сказать. Единственное наверное правильное рещение будет сменить систему управления сайтом.
22.03.2011 в 22:30
Полезно, понадобится. Мой сайт http://darkoff.ru/, основа так же программинг: )
01.11.2011 в 02:31
3 мегабайта памяти - это не так уж и много
у меня сайт средний - 2.7 мегабайт использует (на kohana). а вот вордпрес - вообще жесть - даже представить страшно (несколько десятков!).