95 lines · plain
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_nsecs18clear_term19);20 21our $VERSION = '0.01';22 23sub avg24{25 my ($total, $n) = @_;26 27 return $total / $n;28}29 30my $NSECS_PER_SEC = 1000000000;31 32sub nsecs33{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_term60{61 print "\x1b[H\x1b[2J";62}63 641;65__END__66=head1 NAME67 68Perf::Trace::Util - Perl extension for perf script69 70=head1 SYNOPSIS71 72 use Perf::Trace::Util;73 74=head1 SEE ALSO75 76Perf (script) documentation77 78=head1 AUTHOR79 80Tom Zanussi, E<lt>tzanussi@gmail.com<gt>81 82=head1 COPYRIGHT AND LICENSE83 84Copyright (C) 2009 by Tom Zanussi85 86This library is free software; you can redistribute it and/or modify87it 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 the91GNU General Public License ("GPL") version 2 as published by the Free92Software Foundation.93 94=cut95