秒表组件

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

秒表组件

Stopwatch组件提供了一种分析代码的方法。

安装

1
作曲家需要交响乐/秒表欧宝娱乐app下载地址

或者,您可以克隆https://github.com/欧宝娱乐app下载地址symfony/stopwatch存储库。

请注意

如果在Symfony应用程序外部安装此组件,则必须要求欧宝娱乐app下载地址供应商/ autoload.php文件,以启用Composer提供的类自动加载机制。读这篇文章欲知详情。

使用

Stopwatch组件提供了一种简单而一致的方法来测量代码某些部分的执行时间,这样您就不必自己经常解析微时间了。相反,使用秒表类:

1 2 3 4 5 6 7
使用欧宝娱乐app下载地址组件秒表秒表秒表秒表();//启动名为eventName的事件秒表->开始(“eventName”);/ /……这里有一些代码事件秒表->停止(“eventName”);

StopwatchEvent对象可以从start ()stop ()大腿上()而且getEvent ()方法。当您需要在事件仍在运行时检索事件的持续时间时,应该使用后者。

提示

默认情况下,秒表截断任何亚毫秒的时间测量0,所以你不能测量微秒或纳秒。如果你需要更精确的数据,那就通过真正的秒表类构造函数来启用全精度:

1
秒表秒表(真正的);

秒表可以在任何给定的时间被重置到它的原始状态重置()方法,该方法删除到目前为止测量的所有数据。

你也可以为事件提供一个类别名称:

1
秒表->开始(“eventName”“categoryName”);

您可以将类别视为标记事件的一种方式。例如,Symfony Profil欧宝娱乐app下载地址er工具使用类别对不同的事件进行彩色编码。

提示

当您想要在Symfony分析器中显示事件时,请自动装配欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony组件\ \秒表\秒表为你服务。每个类别在单独的一行上显示。

正如你从现实世界中所知道的,所有的秒表都有两个按钮:一个用来启动和停止秒表,另一个用来测量圈速。这正是大腿上()方法:

1 2 3 4 5 6 7 8 9
秒表秒表();//启动名为foo的事件秒表->开始(“foo”);/ /……这里有一些代码秒表->圈(“foo”);/ /……这里有一些代码秒表->圈(“foo”);/ /……这里还有其他代码事件秒表->停止(“foo”);

圈数信息以“周期”的形式存储在赛事中。如需套圈信息,请拨打:

1
事件->getPeriods ();

除了句点之外,您还可以从事件对象中获得其他有用的信息。例如:

1 2 3 4 5 6 7
事件->getCategory ();//返回事件开始的类别事件->getOrigin ();//返回以毫秒为单位的事件开始时间事件->ensureStopped ();//停止所有未停止的周期事件->getStartTime ();//返回第一个周期的开始时间事件->getEndTime ();//返回最后一个周期的结束时间事件->getDuration ();//返回事件持续时间,包括所有周期事件->getMemory ();//返回所有时间段的最大内存使用量

部分

分段是一种逻辑上将时间轴划分为组的方法。您可以在Symfony Prof欧宝娱乐app下载地址iler工具中看到Symfony如何使用分段来很好地可视化框架生命周期。下面是一个使用section的基本用法示例:

1 2 3 4 5 6 7
秒表秒表();秒表->openSection ();秒表->开始(“parsing_config_file”“filesystem_operations”);秒表->stopSection (“路由”);事件秒表->getSectionEvents (“路由”);

方法重新打开已关闭的部分openSection ()方法,并指定要重新打开的部分的id:

1 2 3
秒表->openSection (“路由”);秒表->开始(“building_config_tree”);秒表->stopSection (“路由”);