New in Symfony 3.4: Stopwatch improvements
July 12, 2017 • Published by Javier Eguiluz
Warning: This post is about an unsupported Symfony version. Some of this information may be out of date. Read the most recent Symfony Docs.
The Stopwatch component provides a simple and consistent way to measure
execution time of certain parts of your code. It's more convenient and powerful
than calling to microtime()
PHP function continuously.
Even if you haven't used this component directly yet, you use it every day in the Symfony Debug Toolbar and the Symfony Profiler to measure your application performance. In Symfony 3.4 we introduced two new features to make this component more useful.
Added a reset()
method
Contributed by
Jose Gonzalez
in #23285.
The new reset()
method makes the Stopwatch object to be reset to its original
state, deleting all the data measured so far. This allows the stopwatch to be
reusable, and emulates the reset button of a physical stopwatch.
Added support for microseconds
Contributed by
Javier Eguiluz
in #23223.
Stopwatch component supports time measures of any precision (microseconds,
nanoseconds, etc.), but those measures are converted to integers, losing any
sub-millisecond precision. That's why you usually see some 0 ms
measures in
the Symfony Profiler:
In Symfony 3.4, the code of Stopwatch has been updated to stop converting time
measures to integers, so no precision is ever lost. In order to maintain backward
compatibility, this new behavior is disabled by default and you must pass true
to the Stopwatch class constructor to enable it.
The Symfony Profiler uses this feature by default, so the previous profiling now
looks as follows (0 ms
is now 0.1 ms
, 0.3 ms
, etc.):
Help the Symfony project!
As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.