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