Метод stopSection класса Stopwatch
Метод stopSection класса Stopwatch
останавливает последнюю открытую секцию
секундомера. Секции открываются методом
openSection и позволяют измерять
время выполнения отдельных участков кода.
Метод не принимает параметров и возвращает
имя остановленной секции в виде строки.
Если открытых секций нет, выбрасывается
исключение LogicException.
Синтаксис
public function stopSection(): string
Пример
Давайте откроем секцию, выполним код и остановим секцию:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentStopwatchStopwatch;
class ArticleController extends AbstractController
{
public function index(): Response
{
$stopwatch = new Stopwatch();
$stopwatch->openSection();
$sum = 0;
for ($i = 0; $i < 100000; $i++) {
$sum += $i;
}
$name = $stopwatch->stopSection();
return new Response($name);
}
}
?>
Результат выполнения кода:
"section"
Пример
Давайте откроем именованную секцию и остановим её:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentStopwatchStopwatch;
class ArticleController extends AbstractController
{
public function index(): Response
{
$stopwatch = new Stopwatch();
$stopwatch->openSection('processing');
$res = [];
for ($i = 0; $i < 10; $i++) {
$res[] = $i;
}
$name = $stopwatch->stopSection();
return new Response($name);
}
}
?>
Результат выполнения кода:
"processing"
Пример
Давайте посмотрим события остановленной
секции через метод getSectionEvents:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentStopwatchStopwatch;
class ArticleController extends AbstractController
{
public function index(): Response
{
$stopwatch = new Stopwatch();
$stopwatch->openSection('processing');
$sum = 0;
for ($i = 0; $i < 100000; $i++) {
$sum += $i;
}
$name = $stopwatch->stopSection();
$events = $stopwatch->getSectionEvents($name);
return new Response((string) count($events));
}
}
?>
Результат выполнения кода:
"2"
Смотрите также
-
класс
Stopwatch,
который измеряет время выполнения кода -
метод
openSection,
который открывает новую секцию секундомера -
метод
getSectionEvents,
который возвращает события секции -
метод
start,
который запускает измерение события