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