Symfony 如何将自定义计时器添加到性能调试页面?

Symfony 如何将自定义计时器添加到性能调试页面?,symfony,symfony-3.4,Symfony,Symfony 3.4,在性能页面上,我们可以看到各种指标 但是,只有当您的大部分工作都是通过控制器本身存在的时候,它才是如此有用,并且很可能在开发人员将要引入瓶颈的地方 有没有一种方法可以将更多自定义计时器注入此页面 例如,这个特定的控制器正在解压和处理zip存档。我想直观地知道提取归档文件需要多少控制器执行长度,以及处理归档文件需要多少控制器执行长度 如果您的zip控制器扩展了控制器,请尝试: use \Symfony\Bundle\FrameworkBundle\Controller\Controller; c

在性能页面上,我们可以看到各种指标

但是,只有当您的大部分工作都是通过控制器本身存在的时候,它才是如此有用,并且很可能在开发人员将要引入瓶颈的地方

有没有一种方法可以将更多自定义计时器注入此页面


例如,这个特定的控制器正在解压和处理zip存档。我想直观地知道提取归档文件需要多少控制器执行长度,以及处理归档文件需要多少控制器执行长度

如果您的zip控制器扩展了控制器,请尝试:

use \Symfony\Bundle\FrameworkBundle\Controller\Controller;

class zipController extends Controller
{
    public function index(Request $request)
    {
        $debugstopwatch = $this->get('debug.stopwatch');
        $debugstopwatch->start('zipController');


        /* ..  */

        $debugstopwatch->stop('zipController');

        /*render page*/

    }
}
或注入\Symfony\Component\Stopwatch\Stopwatch

public function index(Request $request, \Symfony\Component\Stopwatch\Stopwatch $debugstopwatch)
{
    $debugstopwatch->start('zipController');

    /* ..  */

    $debugstopwatch->stop('zipController');



}

你知道,我觉得奇怪的是,我已经尝试了很多年了,但它从来都不起作用,新的Metreic就不会出现。甚至深入到调试工具栏,复制我看到的。。还是没什么。所以我会坐在这里,为事情编写定制的度量。然后砰的一声,你的回答,就这么做,现在起作用了!不知道为什么现在比以前,但它是,我感谢你帮助我了!干杯@不客气!即使我使用$debug stopwatch=new stopwatch也无法让它工作:-我还发现DataCollector对于添加自定义信息非常有用!我完全使用自定义数据采集器的地方,如自定义API指标和数据表示,自定义标记和todo的,等等调试工具栏是如此好