← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Thu Dec 15 15:23:56 2022
Reported on Thu Dec 15 15:27:01 2022

Filename/Users/ether/perl5/perlbrew/perls/36.0/lib/5.36.0/IO/Compress/RawDeflate.pm
StatementsExecuted 41 statements in 2.02ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1113.12ms27.3msIO::Compress::RawDeflate::::BEGIN@9IO::Compress::RawDeflate::BEGIN@9
111979µs10.1msIO::Compress::RawDeflate::::BEGIN@11IO::Compress::RawDeflate::BEGIN@11
11120µs22µsIO::Compress::RawDeflate::::BEGIN@5IO::Compress::RawDeflate::BEGIN@5
11111µs34µsIO::Compress::RawDeflate::::BEGIN@12IO::Compress::RawDeflate::BEGIN@12
1118µs29µsIO::Compress::RawDeflate::::BEGIN@137IO::Compress::RawDeflate::BEGIN@137
1117µs153µsIO::Compress::RawDeflate::::BEGIN@10IO::Compress::RawDeflate::BEGIN@10
1116µs22µsIO::Compress::RawDeflate::::BEGIN@150IO::Compress::RawDeflate::BEGIN@150
1116µs23µsIO::Compress::RawDeflate::::BEGIN@6IO::Compress::RawDeflate::BEGIN@6
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#
5223µs224µs
# spent 22µs (20+2) within IO::Compress::RawDeflate::BEGIN@5 which was called: # once (20µs+2µs) by IO::Compress::Gzip::BEGIN@11 at line 5
use strict ;
# spent 22µs making 1 call to IO::Compress::RawDeflate::BEGIN@5 # spent 2µs making 1 call to strict::import
6213µs240µs
# spent 23µs (6+17) within IO::Compress::RawDeflate::BEGIN@6 which was called: # once (6µs+17µs) by IO::Compress::Gzip::BEGIN@11 at line 6
use warnings;
# spent 23µs making 1 call to IO::Compress::RawDeflate::BEGIN@6 # spent 17µs making 1 call to warnings::import
7218µs25µs
# spent 5µs within IO::Compress::RawDeflate::BEGIN@7 which was called: # once (5µs+0s) by IO::Compress::Gzip::BEGIN@11 at line 7
use bytes;
# spent 5µs making 1 call to IO::Compress::RawDeflate::BEGIN@7 # spent 0s making 1 call to bytes::import
8
93601µs327.3ms
# spent 27.3ms (3.12+24.2) within IO::Compress::RawDeflate::BEGIN@9 which was called: # once (3.12ms+24.2ms) by IO::Compress::Gzip::BEGIN@11 at line 9
use IO::Compress::Base 2.106 ;
# spent 27.3ms making 1 call to IO::Compress::RawDeflate::BEGIN@9 # spent 12µs making 1 call to Exporter::import # spent 5µs making 1 call to UNIVERSAL::VERSION
10326µs3299µs
# spent 153µs (7+146) within IO::Compress::RawDeflate::BEGIN@10 which was called: # once (7µs+146µs) by IO::Compress::Gzip::BEGIN@11 at line 10
use IO::Compress::Base::Common 2.106 qw(:Status :Parse);
# spent 153µs making 1 call to IO::Compress::RawDeflate::BEGIN@10 # spent 143µs making 1 call to Exporter::import # spent 3µs making 1 call to UNIVERSAL::VERSION
113498µs310.2ms
# spent 10.1ms (979µs+9.13) within IO::Compress::RawDeflate::BEGIN@11 which was called: # once (979µs+9.13ms) by IO::Compress::Gzip::BEGIN@11 at line 11
use IO::Compress::Adapter::Deflate 2.106 ;
# spent 10.1ms making 1 call to IO::Compress::RawDeflate::BEGIN@11 # spent 100µs making 1 call to Exporter::import # spent 6µs making 1 call to UNIVERSAL::VERSION
123483µs357µs
# spent 34µs (11+23) within IO::Compress::RawDeflate::BEGIN@12 which was called: # once (11µs+23µs) by IO::Compress::Gzip::BEGIN@11 at line 12
use Compress::Raw::Zlib 2.103 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
# spent 34µs making 1 call to IO::Compress::RawDeflate::BEGIN@12 # spent 18µs making 1 call to Exporter::import # spent 5µs making 1 call to UNIVERSAL::VERSION
13
1410srequire Exporter ;
15
16our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
17
1811µs$VERSION = '2.106';
1910s$RawDeflateError = '';
20
2118µs@ISA = qw(IO::Compress::Base Exporter);
2210s@EXPORT_OK = qw( $RawDeflateError rawdeflate ) ;
2314µspush @EXPORT_OK, @IO::Compress::Adapter::Deflate::EXPORT_OK ;
24
2512µs%EXPORT_TAGS = %IO::Compress::Adapter::Deflate::DEFLATE_CONSTANTS;
26
27
28{
2921µs my %seen;
3012µs foreach (keys %EXPORT_TAGS )
31 {
32 push @{$EXPORT_TAGS{constants}},
33 grep { !$seen{$_}++ }
34412µs @{ $EXPORT_TAGS{$_} }
35 }
3611µs $EXPORT_TAGS{all} = $EXPORT_TAGS{constants} ;
37}
38
39
4011µs%DEFLATE_CONSTANTS = %EXPORT_TAGS;
41
42#push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
43
4411µs116µsExporter::export_ok_tags('all');
# spent 16µs making 1 call to Exporter::export_ok_tags
45
- -
48sub new
49{
50 my $class = shift ;
51
52 my $obj = IO::Compress::Base::Common::createSelfTiedObject($class, \$RawDeflateError);
53
54 return $obj->_create(undef, @_);
55}
56
57sub rawdeflate
58{
59 my $obj = IO::Compress::Base::Common::createSelfTiedObject(undef, \$RawDeflateError);
60 return $obj->_def(@_);
61}
62
63sub ckParams
64{
65 my $self = shift ;
66 my $got = shift;
67
68 return 1 ;
69}
70
71sub mkComp
72{
73 my $self = shift ;
74 my $got = shift ;
75
76 my ($obj, $errstr, $errno) = IO::Compress::Adapter::Deflate::mkCompObject(
77 $got->getValue('crc32'),
78 $got->getValue('adler32'),
79 $got->getValue('level'),
80 $got->getValue('strategy')
81 );
82
83 return $self->saveErrorString(undef, $errstr, $errno)
84 if ! defined $obj;
85
86 return $obj;
87}
88
89
90sub mkHeader
91{
92 my $self = shift ;
93 return '';
94}
95
96sub mkTrailer
97{
98 my $self = shift ;
99 return '';
100}
101
102sub mkFinalTrailer
103{
104 return '';
105}
106
107
108#sub newHeader
109#{
110# my $self = shift ;
111# return '';
112#}
113
114sub getExtraParams
115{
116 my $self = shift ;
117 return getZlibParams();
118}
119
12013µs21µsour %PARAMS = (
# spent 1µs making 2 calls to Compress::Raw::Zlib::__ANON__[Compress/Raw/Zlib.pm:114], avg 500ns/call
121 #'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED],
122 'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION],
123 'strategy' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_STRATEGY],
124
125 'crc32' => [IO::Compress::Base::Common::Parse_boolean, 0],
126 'adler32' => [IO::Compress::Base::Common::Parse_boolean, 0],
127 'merge' => [IO::Compress::Base::Common::Parse_boolean, 0],
128 );
129
130sub getZlibParams
131{
132 return %PARAMS;
133}
134
135sub getInverseClass
136{
137246µs250µs
# spent 29µs (8+21) within IO::Compress::RawDeflate::BEGIN@137 which was called: # once (8µs+21µs) by IO::Compress::Gzip::BEGIN@11 at line 137
no warnings 'once';
# spent 29µs making 1 call to IO::Compress::RawDeflate::BEGIN@137 # spent 21µs making 1 call to warnings::unimport
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
1502263µs238µs
# spent 22µs (6+16) within IO::Compress::RawDeflate::BEGIN@150 which was called: # once (6µs+16µs) by IO::Compress::Gzip::BEGIN@11 at line 150
use Fcntl qw(SEEK_SET);
# spent 22µs making 1 call to IO::Compress::RawDeflate::BEGIN@150 # spent 16µ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} = U64->new(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
- -
219110µs1;
220
221__END__