← Index
NYTProf Performance Profile   « line view »
For /home/ss5/perl5/perlbrew/perls/perl-5.22.0/bin/benchmarkanything-storage
  Run on Mon Jan 29 16:55:34 2018
Reported on Mon Jan 29 16:57:07 2018

Filename/home/ss5/perl5/perlbrew/perls/perl-5.22.0/lib/5.22.0/IO/Compress/RawDeflate.pm
StatementsExecuted 42 statements in 797µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1112.29ms8.67msIO::Compress::RawDeflate::::BEGIN@9IO::Compress::RawDeflate::BEGIN@9
111457µs3.20msIO::Compress::RawDeflate::::BEGIN@11IO::Compress::RawDeflate::BEGIN@11
1119µs87µsIO::Compress::RawDeflate::::BEGIN@119IO::Compress::RawDeflate::BEGIN@119
1118µs109µsIO::Compress::RawDeflate::::BEGIN@10IO::Compress::RawDeflate::BEGIN@10
1117µs29µsIO::Compress::RawDeflate::::BEGIN@120IO::Compress::RawDeflate::BEGIN@120
1117µs8µsIO::Compress::RawDeflate::::BEGIN@5IO::Compress::RawDeflate::BEGIN@5
1116µs8µsIO::Compress::RawDeflate::::BEGIN@6IO::Compress::RawDeflate::BEGIN@6
1115µs18µsIO::Compress::RawDeflate::::BEGIN@150IO::Compress::RawDeflate::BEGIN@150
1115µs5µsIO::Compress::RawDeflate::::BEGIN@7IO::Compress::RawDeflate::BEGIN@7
0000s0sIO::Compress::RawDeflate::::ckParamsIO::Compress::RawDeflate::ckParams
0000s0sIO::Compress::RawDeflate::::createMergeIO::Compress::RawDeflate::createMerge
0000s0sIO::Compress::RawDeflate::::deflateParamsIO::Compress::RawDeflate::deflateParams
0000s0sIO::Compress::RawDeflate::::getExtraParamsIO::Compress::RawDeflate::getExtraParams
0000s0sIO::Compress::RawDeflate::::getFileInfoIO::Compress::RawDeflate::getFileInfo
0000s0sIO::Compress::RawDeflate::::getInverseClassIO::Compress::RawDeflate::getInverseClass
0000s0sIO::Compress::RawDeflate::::getZlibParamsIO::Compress::RawDeflate::getZlibParams
0000s0sIO::Compress::RawDeflate::::mkCompIO::Compress::RawDeflate::mkComp
0000s0sIO::Compress::RawDeflate::::mkFinalTrailerIO::Compress::RawDeflate::mkFinalTrailer
0000s0sIO::Compress::RawDeflate::::mkHeaderIO::Compress::RawDeflate::mkHeader
0000s0sIO::Compress::RawDeflate::::mkTrailerIO::Compress::RawDeflate::mkTrailer
0000s0sIO::Compress::RawDeflate::::newIO::Compress::RawDeflate::new
0000s0sIO::Compress::RawDeflate::::rawdeflateIO::Compress::RawDeflate::rawdeflate
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package IO::Compress::RawDeflate ;
2
3# create RFC1951
4#
5216µs29µs
# spent 8µs (7+1000ns) within IO::Compress::RawDeflate::BEGIN@5 which was called: # once (7µs+1000ns) by IO::Compress::Deflate::BEGIN@11 at line 5
use strict ;
# spent 8µs making 1 call to IO::Compress::RawDeflate::BEGIN@5 # spent 1µs making 1 call to strict::import
6210µs210µs
# spent 8µs (6+2) within IO::Compress::RawDeflate::BEGIN@6 which was called: # once (6µs+2µs) by IO::Compress::Deflate::BEGIN@11 at line 6
use warnings;
# spent 8µs making 1 call to IO::Compress::RawDeflate::BEGIN@6 # spent 2µs making 1 call to warnings::import
7213µs26µs
# spent 5µs (5+400ns) within IO::Compress::RawDeflate::BEGIN@7 which was called: # once (5µs+400ns) by IO::Compress::Deflate::BEGIN@11 at line 7
use bytes;
# spent 5µs making 1 call to IO::Compress::RawDeflate::BEGIN@7 # spent 400ns making 1 call to bytes::import
8
9376µs38.70ms
# spent 8.67ms (2.29+6.39) within IO::Compress::RawDeflate::BEGIN@9 which was called: # once (2.29ms+6.39ms) by IO::Compress::Deflate::BEGIN@11 at line 9
use IO::Compress::Base 2.068 ;
# spent 8.67ms making 1 call to IO::Compress::RawDeflate::BEGIN@9 # spent 21µs making 1 call to Exporter::import # spent 4µs making 1 call to UNIVERSAL::VERSION
10328µs3211µs
# spent 109µs (8+102) within IO::Compress::RawDeflate::BEGIN@10 which was called: # once (8µs+102µs) by IO::Compress::Deflate::BEGIN@11 at line 10
use IO::Compress::Base::Common 2.068 qw(:Status );
# spent 109µs making 1 call to IO::Compress::RawDeflate::BEGIN@10 # spent 98µs making 1 call to Exporter::import # spent 4µs making 1 call to UNIVERSAL::VERSION
113292µs33.30ms
# spent 3.20ms (457µs+2.74) within IO::Compress::RawDeflate::BEGIN@11 which was called: # once (457µs+2.74ms) by IO::Compress::Deflate::BEGIN@11 at line 11
use IO::Compress::Adapter::Deflate 2.068 ;
# spent 3.20ms making 1 call to IO::Compress::RawDeflate::BEGIN@11 # spent 92µs making 1 call to Exporter::import # spent 6µs making 1 call to UNIVERSAL::VERSION
12
131300nsrequire Exporter ;
14
15our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
16
171300ns$VERSION = '2.068';
181100ns$RawDeflateError = '';
19
2015µs@ISA = qw(Exporter IO::Compress::Base);
211400ns@EXPORT_OK = qw( $RawDeflateError rawdeflate ) ;
2212µspush @EXPORT_OK, @IO::Compress::Adapter::Deflate::EXPORT_OK ;
23
2412µs%EXPORT_TAGS = %IO::Compress::Adapter::Deflate::DEFLATE_CONSTANTS;
25
26
27{
282300ns my %seen;
291900ns foreach (keys %EXPORT_TAGS )
30 {
31 push @{$EXPORT_TAGS{constants}},
32 grep { !$seen{$_}++ }
33411µs @{ $EXPORT_TAGS{$_} }
34 }
3511µs $EXPORT_TAGS{all} = $EXPORT_TAGS{constants} ;
36}
37
38
3911µs%DEFLATE_CONSTANTS = %EXPORT_TAGS;
40
41#push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
42
4312µs113µsExporter::export_ok_tags('all');
# spent 13µs making 1 call to Exporter::export_ok_tags
44
45
46
47sub new
48{
49 my $class = shift ;
50
51 my $obj = IO::Compress::Base::Common::createSelfTiedObject($class, \$RawDeflateError);
52
53 return $obj->_create(undef, @_);
54}
55
56sub rawdeflate
57{
58 my $obj = IO::Compress::Base::Common::createSelfTiedObject(undef, \$RawDeflateError);
59 return $obj->_def(@_);
60}
61
62sub ckParams
63{
64 my $self = shift ;
65 my $got = shift;
66
67 return 1 ;
68}
69
70sub mkComp
71{
72 my $self = shift ;
73 my $got = shift ;
74
75 my ($obj, $errstr, $errno) = IO::Compress::Adapter::Deflate::mkCompObject(
76 $got->getValue('crc32'),
77 $got->getValue('adler32'),
78 $got->getValue('level'),
79 $got->getValue('strategy')
80 );
81
82 return $self->saveErrorString(undef, $errstr, $errno)
83 if ! defined $obj;
84
85 return $obj;
86}
87
88
89sub mkHeader
90{
91 my $self = shift ;
92 return '';
93}
94
95sub mkTrailer
96{
97 my $self = shift ;
98 return '';
99}
100
101sub mkFinalTrailer
102{
103 return '';
104}
105
106
107#sub newHeader
108#{
109# my $self = shift ;
110# return '';
111#}
112
113sub getExtraParams
114{
115 my $self = shift ;
116 return getZlibParams();
117}
118
119333µs3165µs
# spent 87µs (9+78) within IO::Compress::RawDeflate::BEGIN@119 which was called: # once (9µs+78µs) by IO::Compress::Deflate::BEGIN@11 at line 119
use IO::Compress::Base::Common 2.068 qw(:Parse);
# spent 87µs making 1 call to IO::Compress::RawDeflate::BEGIN@119 # spent 72µs making 1 call to Exporter::import # spent 5µs making 1 call to UNIVERSAL::VERSION
120389µs351µs
# spent 29µs (7+22) within IO::Compress::RawDeflate::BEGIN@120 which was called: # once (7µs+22µs) by IO::Compress::Deflate::BEGIN@11 at line 120
use Compress::Raw::Zlib 2.068 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
# spent 29µs making 1 call to IO::Compress::RawDeflate::BEGIN@120 # spent 17µs making 1 call to Exporter::import # spent 5µs making 1 call to UNIVERSAL::VERSION
12114µs2900nsour %PARAMS = (
# spent 900ns making 2 calls to Compress::Raw::Zlib::__ANON__[Compress/Raw/Zlib.pm:114], avg 450ns/call
122 #'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED],
123 'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION],
124 'strategy' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_STRATEGY],
125
126 'crc32' => [IO::Compress::Base::Common::Parse_boolean, 0],
127 'adler32' => [IO::Compress::Base::Common::Parse_boolean, 0],
128 'merge' => [IO::Compress::Base::Common::Parse_boolean, 0],
129 );
130
131sub getZlibParams
132{
133 return %PARAMS;
134}
135
136sub getInverseClass
137{
138 return ('IO::Uncompress::RawInflate',
139 \$IO::Uncompress::RawInflate::RawInflateError);
140}
141
142sub getFileInfo
143{
144 my $self = shift ;
145 my $params = shift;
146 my $file = shift ;
147
148}
149
1502201µs231µs
# spent 18µs (5+13) within IO::Compress::RawDeflate::BEGIN@150 which was called: # once (5µs+13µs) by IO::Compress::Deflate::BEGIN@11 at line 150
use Fcntl qw(SEEK_SET);
# spent 18µs making 1 call to IO::Compress::RawDeflate::BEGIN@150 # spent 13µs making 1 call to Exporter::import
151
152sub createMerge
153{
154 my $self = shift ;
155 my $outValue = shift ;
156 my $outType = shift ;
157
158 my ($invClass, $error_ref) = $self->getInverseClass();
159 eval "require $invClass"
160 or die "aaaahhhh" ;
161
162 my $inf = $invClass->new( $outValue,
163 Transparent => 0,
164 #Strict => 1,
165 AutoClose => 0,
166 Scan => 1)
167 or return $self->saveErrorString(undef, "Cannot create InflateScan object: $$error_ref" ) ;
168
169 my $end_offset = 0;
170 $inf->scan()
171 or return $self->saveErrorString(undef, "Error Scanning: $$error_ref", $inf->errorNo) ;
172 $inf->zap($end_offset)
173 or return $self->saveErrorString(undef, "Error Zapping: $$error_ref", $inf->errorNo) ;
174
175 my $def = *$self->{Compress} = $inf->createDeflate();
176
177 *$self->{Header} = *$inf->{Info}{Header};
178 *$self->{UnCompSize} = *$inf->{UnCompSize}->clone();
179 *$self->{CompSize} = *$inf->{CompSize}->clone();
180 # TODO -- fix this
181 #*$self->{CompSize} = new U64(0, *$self->{UnCompSize_32bit});
182
183
184 if ( $outType eq 'buffer')
185 { substr( ${ *$self->{Buffer} }, $end_offset) = '' }
186 elsif ($outType eq 'handle' || $outType eq 'filename') {
187 *$self->{FH} = *$inf->{FH} ;
188 delete *$inf->{FH};
189 *$self->{FH}->flush() ;
190 *$self->{Handle} = 1 if $outType eq 'handle';
191
192 #seek(*$self->{FH}, $end_offset, SEEK_SET)
193 *$self->{FH}->seek($end_offset, SEEK_SET)
194 or return $self->saveErrorString(undef, $!, $!) ;
195 }
196
197 return $def ;
198}
199
200#### zlib specific methods
201
202sub deflateParams
203{
204 my $self = shift ;
205
206 my $level = shift ;
207 my $strategy = shift ;
208
209 my $status = *$self->{Compress}->deflateParams(Level => $level, Strategy => $strategy) ;
210 return $self->saveErrorString(0, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo})
211 if $status == STATUS_ERROR;
212
213 return 1;
214}
215
- -
21918µs1;
220
221__END__