В общем, чтобы измерить время выполнения в php, вы используете что-то вроде этого:
$start = microtime(true /*get as float*/);
//some code goes here (i.e. your symfony request dispatching)
$end = microtime(true);
echo sprintf("some code executed for %.3f seconds", $end - $start);
Хитрость с фреймворком Symfony заключается в том, чтобы вставить ваш код в хорошее место, мои предложения:
- используйте цепочку фильтров (если вы знакомы с этим механизмом).Просто вставьте свой фильтр перед любым другим, запишите первую отметку времени $ start и вычислите разницу в файле макета
- или IMHO более уродливые, но чуть более точные - взломайте фронт-контроллер Symfony, чтобы записать свою временную метку $ start перед вызовом отправки
КонечноВычисление разницы времени загрузки страницы в файле макета имеет свои недостатки, поскольку не рассчитывает время рендеринга всей страницы, только до момента отображения макета (что является приемлемым, поскольку макет рендеринга является одной из последних задач диспетчеризации запросов, НО макет)не всегда отображается)
Чтобы решить эту проблему, вы можете использовать свой фильтр в конце запроса для вывода javascript, который добавит время загрузки страницы к документу (в значительной степени то, что Symfony делает со своей панелью инструментов отладки)