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