如何通过 Symfony StopWatch 组件分析代码

How to profile code through Symfony StopWatch component

根据 docs 说:

The Stopwatch component provides an easy and consistent way to measure execution time of certain parts of code so that you don't constantly have to parse microtime by yourself.

我想分析我的 REST API cURL 调用和代码执行以减少时间,但我不确定如何执行此操作。我在我的代码上做的是把这段代码:

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

// the code goes here

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

但是由于这是 RESTful API 我不确定如何获得探查器结果。我正在查看 StopWatch 并注意到 getEventgetSectionEvents 但我再次不确定是否应该直接调用它们并将结果传递给 Monolog 记录器或者是否有任何其他方法可以实现这个。简而言之:通过 RESTful API 访问路由时如何查看分析器结果?有什么建议吗?想法?

我就是这样处理的。

在控制器中使用 twig 渲染 api 的数据:

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

然后在Resources/views/Default/debug.html.twig

中创建'debug'模板
{% extends 'base.html.twig' %}

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

在您的浏览器中,调用您的 API GET url 之一。您将访问 Symfony 的分析器并查看您的数据。

代码执行时间,可以监听kernel.request和kernel.terminate事件。