Просмотр поста

.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Профилировщик
Довольно редкая вещь, из IDE, встроенный профилировщик имеют только Zend Studio и NuSphere PhpEd.
Однако, если Вы используете Xdebug, к нему есть отдельные утилиты (например WinCacheGrind), которые позволяют проводить профилировку. Конечно это уже не так удобно, как если профилировщик встроенный, но тем не менее, свою работу выполняет.

Итак, что такое "профилировка" и с чем ее едят?
Вы наверно часто видели (возможно и используете сами) вывод времени генерации страницы с помощью microtime().
Знаете, что когда время генерации мало - скрипт работает быстро и это хорошо.
Когда время генерации велико - это плохо и скрипт работает медленно.

Но как искать причину медленной работы скрипта?
Что виновато, неудачный алгоритм, цикл, или просто большая база и запрос забирает много времени?
Что именно нужно оптимизировать для достижения максимальной производительности?

Время генерации страницы тут мало поможет, оно показывает только "общее время", а ведь скрипт состоит из множества функций и модулей. Какой из них тормозит, на что нужно обратить внимание?
Вот для этого и нужен "профилировщик". Он Вам выдаст подробнейшую информацию, с граффиками, что и как выполняется, сколько времени это забирает.
Щелкнув на интересующий параметр, вы откроете нужный скрипт в нужном месте и можете думать насчет оптимизации.

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

З.Ы.
На картинке виден результат работы профилировщика.
Подробно показана работа всех функций, с графиками, временем выполнения и, если работа функции циклическая, то сколько раз она выполнялась.
Как вы догадываетесь. с помощью простого замера времени генерации страницы, такую информацию получить невозможно.
Прикрепленные файлы: