package Perf::Trace::Util; use 5.010000; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( avg nsecs nsecs_secs nsecs_nsecs nsecs_usecs print_nsecs ); our $VERSION = '0.01'; sub avg { my ($total, $n) = @_; return $total / $n; } my $NSECS_PER_SEC = 1000000000; sub nsecs { my ($secs, $nsecs) = @_; return $secs * $NSECS_PER_SEC + $nsecs; } sub nsecs_secs { my ($nsecs) = @_; return $nsecs / $NSECS_PER_SEC; } sub nsecs_nsecs { my ($nsecs) = @_; return $nsecs % $NSECS_PER_SEC; } sub nsecs_str { my ($nsecs) = @_; my $str = sprintf("%5u.%09u", nsecs_secs($nsecs), nsecs_nsecs($nsecs)); return $str; } 1; __END__ =head1 NAME Perf::Trace::Util - Perl extension for perf trace =head1 SYNOPSIS use Perf::Trace::Util; =head1 SEE ALSO Perf (trace) documentation =head1 AUTHOR Tom Zanussi, Etzanussi@gmail.com =head1 COPYRIGHT AND LICENSE Copyright (C) 2009 by Tom Zanussi This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available. Alternatively, this software may be distributed under the terms of the GNU General Public License ("GPL") version 2 as published by the Free Software Foundation. =cut