Catalyst::Stats

Catalyst::Stats - класс Статистики для измерения времени


Модуль доступен по умолчанию.
__PACKAGE__->stats_class( "My::Stats" );
это если хотите использовать другой класс для статистики.

Чтобы написать свой собственный, вы должны реализовать методы описанные здесь.

Catalyst использует этот класс чтобы информировать о времени выполнения действий компонента. Вы можете добавить точки для анализа в ваш код чтобы получить информацию для более глубокого понимания. Обычно это выглядит так:
sub mysub {
  my ($c, ...) = @_;
  $c->stats->profile(begin => "mysub");
  # code goes here
  ...
  $c->stats->profile("starting critical bit");
  # code here too
  ...
  $c->stats->profile("completed first part of critical bit");
  # more code
  ...
  $c->stats->profile("completed second part of critical bit");
  # more code
  ...
  $c->stats->profile(end => "mysub");
}


Допустим mysub был вызван из действия "process" внутри Catalyst Контроллера по имени "service" затем информирование о времени выполнения, будет выглядеть примерно так:
.----------------------------------------------------------------+-----------.
| Action                                                                  | Time      |
+----------------------------------------------------------------+-----------+
| /service/process                                                   | 1.327702s |
|  mysub                                                               | 0.555555s |
|   - starting critical bit                                             | 0.111111s |
|   - completed first part of critical bit                         | 0.333333s |
|   - completed second part of critical bit                     | 0.111000s |
| /end                                                                   | 0.000160s |
'----------------------------------------------------------------+-----------'


Методы

 

new
Конструктор
$stats = Catalyst::Stats->new;

enable
$stats->enable(0);
$stats->enable(1);
По умолчанию, включен, после создания объекта.

profile
$stats->profile($comment);
$stats->profile(begin => $block_name, comment =>$comment);
$stats->profile(end => $block_name);

Помечает контрольные точки для анализа. Можно использовать в паре begin/end.

Следующие ключ имя/значение может быть использован, кроме begin, end, comment еще:
uid => UID
Присваивает предопределенный уникальный ID.
parent => UID
для предка UID

created
($seconds, $microseconds) = $stats->created;

Возвращает время создания объекта, в gettimeofday формате.

elapsed
$elapsed = $stats->elapsed
Время жизни с момента создания объекта.

report
print $stats->report ."\n";
$report = $stats->report;
@report = $stats->report;

В скалярном контексте - текстовый отчет. В контексте массива:
[ depth, description, time, rollup ]

depth - уровень вызова в стеке точки анализа.
description - описание, имя и комментарий
time - время жизни
rollup - флаг показывающий, либо срок жизни, либо время жизни начиная с предыдущей точки для анализа.

Совместимые методы

Некоторые методы могут ожидать статистику объекта чтобы быть обычно Tree::Simple объектом.
accept 
addChild 
setNodeValue 
getNodeValue 
traverse