Aion-Telemetry
view release on metacpan or search on metacpan
t/aion/telemetry.t view on Meta::CPAN
use common::sense; use open qw/:std :utf8/; use Test::More 0.98; sub _mkpath_ { my ($p) = @_; length($`) && !-e $`? mkdir($`, 0755) || die "mkdir $`: $!": () while $p =~ m!/!g; $p } BEGIN { use Scalar::Util qw//; use Carp qw//; $SIG{__DIE__} = sub { ...
#
# Aion::Telemetry - measures the time the program runs between specified points
#
# # VERSION
#
# 0.0.1
#
# # SYNOPSIS
#
subtest 'SYNOPSIS' => sub {
use Aion::Telemetry;
my $mark = refmark;
my $sum = 0;
$sum += $_ for 1 .. 1000;
undef $mark;
my $s = << 'END';
Ref Report -- Total time: 0.\d+ ms
Count Time Percent Interval
----------------------------------------------
1 0.\d+ ms 100.00% main::__ANON__
END
::like scalar do {refreport 1}, qr!$s!, 'refreport 1 # ~> $s';
#
# # DESCRIPTION
#
# Telemetry measures the time a program runs between specified points.
# Time inside subsegments is not taken into account!
#
# # SUBROUTINES
#
# ## refmark (;$mark)
#
# Creates a reference point.
#
done_testing; }; subtest 'refmark (;$mark)' => sub {
my $reper1 = refmark "main";
select(undef, undef, undef, .05);
my $reper2 = refmark "reper2";
select(undef, undef, undef, .2);
undef $reper2;
select(undef, undef, undef, .05);
my $reper3 = refmark "reper2";
select(undef, undef, undef, .1);
undef $reper3;
select(undef, undef, undef, .1);
undef $reper1;
# report:
( run in 1.495 second using v1.01-cache-2.11-cpan-39bf76dae61 )