Aion-Telemetry

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

my ($report, $total) = refreport;

$total   # -> $report->[0]{interval} + $report->[1]{interval}

scalar @$report     # -> 2
round $total        # -> 0.5

$report->[0]{mark}            # => reper2
$report->[0]{count}           # -> 2
round $report->[0]{interval}  # -> 0.3
round $report->[0]{percent}   # -> 60.0

$report->[1]{mark}            # => main
$report->[1]{count}           # -> 1
round $report->[1]{interval}  # -> 0.2
round $report->[1]{percent}   # -> 40.0
```

## refreport (;$clean)

Make a report on reference points.

Parameter `$clean == 1` clean the report.

```perl
my $s = refreport;

lib/Aion/Telemetry.md  view on Meta::CPAN

my ($report, $total) = refreport;

$total   # -> $report->[0]{interval} + $report->[1]{interval}

scalar @$report     # -> 2
round $total        # -> 0.5

$report->[0]{mark}            # => reper2
$report->[0]{count}           # -> 2
round $report->[0]{interval}  # -> 0.3
round $report->[0]{percent}   # -> 60.0

$report->[1]{mark}            # => main
$report->[1]{count}           # -> 1
round $report->[1]{interval}  # -> 0.2
round $report->[1]{percent}   # -> 40.0
```

## refreport (;$clean)

Make a report on reference points.

Parameter `$clean == 1` clean the report.

```perl
my $s = refreport;

lib/Aion/Telemetry.pm  view on Meta::CPAN

}

# Создаёт отчёт по реперным точкам
sub refreport(;$) {
	my ($clean) = @_;
	my @v = values %REFMARK;

	%REFMARK = (), undef $REFMARK_LAST_TIME if $clean;

	my $total = sum map $_->{interval}, @v;
	$_->{percent} = ($_->{interval} / $total) * 100 for @v;
	@v = sort {$b->{percent} <=> $a->{percent}} @v;

	return \@v, $total if wantarray;

	join "",
	"Ref Report -- Total time: ${\ sinterval $total }\n",
	sprintf("%8s  %12s  %6s  %s\n", "Count", "Time", "Percent", "Interval"),
	"----------------------------------------------\n",
	map sprintf("%8s  %12s  %6.2f%%  %s\n",
		$_->{count},
		sinterval $_->{interval},
		$_->{percent},
		$_->{mark},
	), @v;
}

1;

__END__

=encoding utf-8

lib/Aion/Telemetry.pm  view on Meta::CPAN

	my ($report, $total) = refreport;
	
	$total   # -> $report->[0]{interval} + $report->[1]{interval}
	
	scalar @$report     # -> 2
	round $total        # -> 0.5
	
	$report->[0]{mark}            # => reper2
	$report->[0]{count}           # -> 2
	round $report->[0]{interval}  # -> 0.3
	round $report->[0]{percent}   # -> 60.0
	
	$report->[1]{mark}            # => main
	$report->[1]{count}           # -> 1
	round $report->[1]{interval}  # -> 0.2
	round $report->[1]{percent}   # -> 40.0

=head2 refreport (;$clean)

Make a report on reference points.

Parameter C<$clean == 1> clean the report.

	my $s = refreport;
	refreport 0  # -> $s
	refreport 1  # -> $s

t/aion/telemetry.t  view on Meta::CPAN

my ($report, $total) = refreport;

::is scalar do {$total}, scalar do{$report->[0]{interval} + $report->[1]{interval}}, '$total   # -> $report->[0]{interval} + $report->[1]{interval}';

::is scalar do {scalar @$report}, scalar do{2}, 'scalar @$report     # -> 2';
::is scalar do {round $total}, scalar do{0.5}, 'round $total        # -> 0.5';

::is scalar do {$report->[0]{mark}}, "reper2", '$report->[0]{mark}            # => reper2';
::is scalar do {$report->[0]{count}}, scalar do{2}, '$report->[0]{count}           # -> 2';
::is scalar do {round $report->[0]{interval}}, scalar do{0.3}, 'round $report->[0]{interval}  # -> 0.3';
::is scalar do {round $report->[0]{percent}}, scalar do{60.0}, 'round $report->[0]{percent}   # -> 60.0';

::is scalar do {$report->[1]{mark}}, "main", '$report->[1]{mark}            # => main';
::is scalar do {$report->[1]{count}}, scalar do{1}, '$report->[1]{count}           # -> 1';
::is scalar do {round $report->[1]{interval}}, scalar do{0.2}, 'round $report->[1]{interval}  # -> 0.2';
::is scalar do {round $report->[1]{percent}}, scalar do{40.0}, 'round $report->[1]{percent}   # -> 40.0';

# 
# ## refreport (;$clean)
# 
# Make a report on reference points.
# 
# Parameter `$clean == 1` clean the report.
# 
done_testing; }; subtest 'refreport (;$clean)' => sub { 
my $s = refreport;



( run in 0.372 second using v1.01-cache-2.11-cpan-05162d3a2b1 )