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