1package Perf::Trace::Util; 2 3use 5.010000; 4use strict; 5use warnings; 6 7require Exporter; 8 9our @ISA = qw(Exporter); 10 11our %EXPORT_TAGS = ( 'all' => [ qw( 12) ] ); 13 14our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); 15 16our @EXPORT = qw( 17avg nsecs nsecs_secs nsecs_nsecs nsecs_usecs print_nsecs 18clear_term 19); 20 21our $VERSION = '0.01'; 22 23sub avg 24{ 25 my ($total, $n) = @_; 26 27 return $total / $n; 28} 29 30my $NSECS_PER_SEC = 1000000000; 31 32sub nsecs 33{ 34 my ($secs, $nsecs) = @_; 35 36 return $secs * $NSECS_PER_SEC + $nsecs; 37} 38 39sub nsecs_secs { 40 my ($nsecs) = @_; 41 42 return $nsecs / $NSECS_PER_SEC; 43} 44 45sub nsecs_nsecs { 46 my ($nsecs) = @_; 47 48 return $nsecs % $NSECS_PER_SEC; 49} 50 51sub nsecs_str { 52 my ($nsecs) = @_; 53 54 my $str = sprintf("%5u.%09u", nsecs_secs($nsecs), nsecs_nsecs($nsecs)); 55 56 return $str; 57} 58 59sub clear_term 60{ 61 print "\x1b[H\x1b[2J"; 62} 63 641; 65__END__ 66=head1 NAME 67 68Perf::Trace::Util - Perl extension for perf trace 69 70=head1 SYNOPSIS 71 72 use Perf::Trace::Util; 73 74=head1 SEE ALSO 75 76Perf (trace) documentation 77 78=head1 AUTHOR 79 80Tom Zanussi, E<lt>tzanussi@gmail.com<gt> 81 82=head1 COPYRIGHT AND LICENSE 83 84Copyright (C) 2009 by Tom Zanussi 85 86This library is free software; you can redistribute it and/or modify 87it under the same terms as Perl itself, either Perl version 5.10.0 or, 88at your option, any later version of Perl 5 you may have available. 89 90Alternatively, this software may be distributed under the terms of the 91GNU General Public License ("GPL") version 2 as published by the Free 92Software Foundation. 93 94=cut 95