Для глубокого анализа «почему все не так» существует множество инструментов. Попробуем использовать новенький анализатор скорости PHP — Blackfire (выпуск от декабря 2014). Самое сложное в нем — поставить на хостинг (заметьте, вам нужно будет и клиент, и расширение для php ставить аккуратно и внимательно следуя инструкции. На виртуальном хостинге это вопрос, а на выделенном — все получается достаточно легко.
После этого мы можем или через расширение к хрому, или через консоль запросить урл сайта, подозреваемый в низкой скорости. Результатом будет интереснейший граф выполнения… Дальше подробнее на примерах и как все работает)


Простейшая легкая страница
Как мы видим — сама первичная загрузка ПХП скрипта — это достаточно долго на нашем тестовом сервере) поэтому куда бы мы потом не усложняли — вот наш нижний лимит(
Простейшая тяжелая страница
Запустим вычисление факториала — чтобы надежно загрузить сервер, но при этом не усложнять схему. Так же надежно с ней зависает собственно лог, даже на факториале сотни, не то что запланированного миллиона) Из консоли выполнение завершается — но графа все равно нет.

Маленькие штучки
Легко сломать просто добавив «обрыв»
blackfire curl http://my_server.page

Сравнение скриптов
Увеличим цель факториала, но уберем вывод… Мы можем увидеть что нагрузка на процессор стала больше, а вот операции «ввода и вывода» меньше. Удельный вес выполнения вырос. Заметим — что дальнейшее внесение функций и объектов на порядок усложняет выполнение (тут до двух секунд, дальше мы увидим и 30 и 40). Профилирование еще дольше длится чем выполнение — так что запускаем заранее допуская что раз в 10 загрузка будет дольше результатов чем генерация самой страницы.
По-разному написанная функция

Указатель — еще хуже)

Финальный тест

О чем говорит график? полный путь загрузок всех функций и объекта, при чем мы сразу видим 4 тест самый тяжелый по выполнению) а самая легкая функция — номер 3 — вообще не в графике, так что можно сделать вывод о показе только нагруженных частей в приоритете нагрузки)

