Как профилировать код с помощью компонента секундомера Symfony


Согласно документам говорится:

Компонент секундомера обеспечивает простой и последовательный способ измерения время выполнения определенных частей кода, чтобы вам не приходилось постоянно анализировать микро-время самостоятельно.

Я хочу профилировать свои вызовы REST API cURL и выполнение кода, чтобы сократить время, но я не уверен, как это сделать. То, что я сделал в своем коде, это поместил этот фрагмент кода:

$stopwatch->start('repsync', 'internal');

// the code goes here

$stopwatch->stop('repsync', 'internal');

Но так как это спокойный API, я не уверен как получить результаты профилировщика. Я смотрел на StopWatch и обратите внимание getEvent и getSectionEvents, но опять же я не уверен, следует ли мне вызывать их напрямую и передавать результат регистратору монологов или есть какой-либо другой способ добиться этого. В нескольких словах: как я вижу результаты профилировщика при доступе к маршрутам через API RESTful? Какой-нибудь совет? Идеи?

Author: ReynierPM, 2015-06-16

1 answers

Вот как я справляюсь с этим.

Используйте twig для отображения данных вашего api в вашем контроллере:

return $this->render('MyApiBundle:Default:debug.html.twig', array('data' => $data));

Затем создайте шаблон "отладка" в Resources/views/Default/debug.html.twig

{% extends 'base.html.twig' %}

{% block body %}
    Debug page
    {{ dump(data) }}
{% endblock %}

В вашем браузере вызовите один из ваших URL-адресов API GET. Вы получите доступ к профилировщику Symfony и увидите свои данные.

Во время выполнения кода вы можете прослушивать события kernel.request и kernel.terminate.

 1
Author: Julz, 2015-08-06 22:44:09