← Index
NYTProf Performance Profile   « block view • line view • sub view »
For C:/lo/libo-master/solenv/bin/make_installer.pl
  Run on Mon Sep 24 00:52:54 2012
Reported on Mon Sep 24 07:34:47 2012

Filename/usr/lib/perl5/5.14/i686-cygwin-threads-64int/IO/File.pm
StatementsExecuted 281920 statements in 10.8s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
18793119.93s9.93sIO::File::::CORE:openIO::File::CORE:open (opcode)
1879311416ms10.9sIO::File::::openIO::File::open
1879311229ms572msIO::File::::newIO::File::new
1879311132ms169msIO::File::::binmodeIO::File::binmode
376542151.2ms51.2msIO::File::::CORE:matchIO::File::CORE:match (opcode)
187931136.7ms36.7msIO::File::::CORE:binmodeIO::File::CORE:binmode (opcode)
1114.55ms4.92msIO::File::::BEGIN@131IO::File::BEGIN@131
1113.11ms20.8msIO::File::::BEGIN@133IO::File::BEGIN@133
1112.98ms3.38msIO::File::::BEGIN@132IO::File::BEGIN@132
111311µs311µsIO::File::::BEGIN@127IO::File::BEGIN@127
11125µs29µsIO::File::::BEGIN@134IO::File::BEGIN@134
11119µs120µsIO::File::::BEGIN@130IO::File::BEGIN@130
11117µs28µsIO::File::::BEGIN@128IO::File::BEGIN@128
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1#
2
3package IO::File;
4
5=head1 NAME
6
7IO::File - supply object methods for filehandles
8
9=head1 SYNOPSIS
10
11 use IO::File;
12
13 $fh = IO::File->new();
14 if ($fh->open("< file")) {
15 print <$fh>;
16 $fh->close;
17 }
18
19 $fh = IO::File->new("> file");
20 if (defined $fh) {
21 print $fh "bar\n";
22 $fh->close;
23 }
24
25 $fh = IO::File->new("file", "r");
26 if (defined $fh) {
27 print <$fh>;
28 undef $fh; # automatically closes the file
29 }
30
31 $fh = IO::File->new("file", O_WRONLY|O_APPEND);
32 if (defined $fh) {
33 print $fh "corge\n";
34
35 $pos = $fh->getpos;
36 $fh->setpos($pos);
37
38 undef $fh; # automatically closes the file
39 }
40
41 autoflush STDOUT 1;
42
43=head1 DESCRIPTION
44
45C<IO::File> inherits from C<IO::Handle> and C<IO::Seekable>. It extends
46these classes with methods that are specific to file handles.
47
48=head1 CONSTRUCTOR
49
50=over 4
51
52=item new ( FILENAME [,MODE [,PERMS]] )
53
54Creates an C<IO::File>. If it receives any parameters, they are passed to
55the method C<open>; if the open fails, the object is destroyed. Otherwise,
56it is returned to the caller.
57
58=item new_tmpfile
59
60Creates an C<IO::File> opened for read/write on a newly created temporary
61file. On systems where this is possible, the temporary file is anonymous
62(i.e. it is unlinked after creation, but held open). If the temporary
63file cannot be created or opened, the C<IO::File> object is destroyed.
64Otherwise, it is returned to the caller.
65
66=back
67
68=head1 METHODS
69
70=over 4
71
72=item open( FILENAME [,MODE [,PERMS]] )
73
74=item open( FILENAME, IOLAYERS )
75
76C<open> accepts one, two or three parameters. With one parameter,
77it is just a front end for the built-in C<open> function. With two or three
78parameters, the first parameter is a filename that may include
79whitespace or other special characters, and the second parameter is
80the open mode, optionally followed by a file permission value.
81
82If C<IO::File::open> receives a Perl mode string ("E<gt>", "+E<lt>", etc.)
83or an ANSI C fopen() mode string ("w", "r+", etc.), it uses the basic
84Perl C<open> operator (but protects any special characters).
85
86If C<IO::File::open> is given a numeric mode, it passes that mode
87and the optional permissions value to the Perl C<sysopen> operator.
88The permissions default to 0666.
89
90If C<IO::File::open> is given a mode that includes the C<:> character,
91it passes all the three arguments to the three-argument C<open> operator.
92
93For convenience, C<IO::File> exports the O_XXX constants from the
94Fcntl module, if this module is available.
95
96=item binmode( [LAYER] )
97
98C<binmode> sets C<binmode> on the underlying C<IO> object, as documented
99in C<perldoc -f binmode>.
100
101C<binmode> accepts one optional parameter, which is the layer to be
102passed on to the C<binmode> call.
103
104=back
105
106=head1 NOTE
107
108Some operating systems may perform C<IO::File::new()> or C<IO::File::open()>
109on a directory without errors. This behavior is not portable and not
110suggested for use. Using C<opendir()> and C<readdir()> or C<IO::Dir> are
111suggested instead.
112
113=head1 SEE ALSO
114
115L<perlfunc>,
116L<perlop/"I/O Operators">,
117L<IO::Handle>,
118L<IO::Seekable>,
119L<IO::Dir>
120
121=head1 HISTORY
122
123Derived from FileHandle.pm by Graham Barr E<lt>F<gbarr@pobox.com>E<gt>.
124
125=cut
126
1272257µs1311µs
# spent 311µs within IO::File::BEGIN@127 which was called: # once (311µs+0s) by Archive::Zip::BEGIN@10 at line 127
use 5.006_001;
# spent 311µs making 1 call to IO::File::BEGIN@127
1282111µs238µs
# spent 28µs (17+11) within IO::File::BEGIN@128 which was called: # once (17µs+11µs) by Archive::Zip::BEGIN@10 at line 128
use strict;
# spent 28µs making 1 call to IO::File::BEGIN@128 # spent 11µs making 1 call to strict::import
1291500nsour($VERSION, @EXPORT, @EXPORT_OK, @ISA);
130259µs2221µs
# spent 120µs (19+101) within IO::File::BEGIN@130 which was called: # once (19µs+101µs) by Archive::Zip::BEGIN@10 at line 130
use Carp;
# spent 120µs making 1 call to IO::File::BEGIN@130 # spent 101µs making 1 call to Exporter::import
13123.63ms25.02ms
# spent 4.92ms (4.55+370µs) within IO::File::BEGIN@131 which was called: # once (4.55ms+370µs) by Archive::Zip::BEGIN@10 at line 131
use Symbol;
# spent 4.92ms making 1 call to IO::File::BEGIN@131 # spent 99µs making 1 call to Exporter::import
13222.91ms23.38ms
# spent 3.38ms (2.98+395µs) within IO::File::BEGIN@132 which was called: # once (2.98ms+395µs) by Archive::Zip::BEGIN@10 at line 132
use SelectSaver;
# spent 3.38ms making 1 call to IO::File::BEGIN@132 # spent 6µs making 1 call to UNIVERSAL::import
13322.55ms220.9ms
# spent 20.8ms (3.11+17.7) within IO::File::BEGIN@133 which was called: # once (3.11ms+17.7ms) by Archive::Zip::BEGIN@10 at line 133
use IO::Seekable;
# spent 20.8ms making 1 call to IO::File::BEGIN@133 # spent 61µs making 1 call to Exporter::import
1342763µs233µs
# spent 29µs (25+4) within IO::File::BEGIN@134 which was called: # once (25µs+4µs) by Archive::Zip::BEGIN@10 at line 134
use File::Spec;
# spent 29µs making 1 call to IO::File::BEGIN@134 # spent 4µs making 1 call to UNIVERSAL::import
135
13611µsrequire Exporter;
137
138118µs@ISA = qw(IO::Handle IO::Seekable Exporter);
139
14011µs$VERSION = "1.15";
141
14213µs@EXPORT = @IO::Seekable::EXPORT;
143
14412µseval {
145 # Make all Fcntl O_XXX constants available for importing
1461500ns require Fcntl;
1471212µs6841µs my @O = grep /^O_/, @Fcntl::EXPORT;
# spent 41µs making 68 calls to IO::File::CORE:match, avg 603ns/call
14815µs1275µs Fcntl->import(@O); # first we import what we want to export
# spent 275µs making 1 call to Exporter::import
149127µs push(@EXPORT, @O);
150};
151
152################################################
153## Constructor
154##
155
156
# spent 572ms (229+343) within IO::File::new which was called 18793 times, avg 30µs/call: # 18793 times (229ms+343ms) by Archive::Zip::_newFileHandle at line 437 of Archive/Zip.pm, avg 30µs/call
sub new {
1571879310.2ms my $type = shift;
1581879313.3ms my $class = ref($type) || $type || "IO::File";
1591879319.2ms @_ >= 0 && @_ <= 3
160 or croak "usage: $class->new([FILENAME [,MODE [,PERMS]]])";
16118793115ms18793343ms my $fh = $class->SUPER::new();
# spent 343ms making 18793 calls to IO::Handle::new, avg 18µs/call
162187939.51ms if (@_) {
163 $fh->open(@_)
164 or return undef;
165 }
1661879360.7ms $fh;
167}
168
169################################################
170## Open
171##
172
173
# spent 10.9s (416ms+10.5) within IO::File::open which was called 18793 times, avg 579µs/call: # 18793 times (416ms+10.5s) by Archive::Zip::_newFileHandle at line 438 of Archive/Zip.pm, avg 579µs/call
sub open {
1741879314.7ms @_ >= 2 && @_ <= 4 or croak 'usage: $fh->open(FILENAME [,MODE [,PERMS]])';
1751879318.8ms my ($fh, $file) = @_;
1761879313.0ms if (@_ > 2) {
1771879321.5ms my ($mode, $perms) = @_[2, 3];
17818793153ms3758651.1ms if ($mode =~ /^\d+$/) {
# spent 51.1ms making 37586 calls to IO::File::CORE:match, avg 1µs/call
179 defined $perms or $perms = 0666;
180 return sysopen($fh, $file, $mode, $perms);
181 } elsif ($mode =~ /:/) {
182 return open($fh, $mode, $file) if @_ == 3;
183 croak 'usage: $fh->open(FILENAME, IOLAYERS)';
184 } else {
1851879310.2s3758610.4s return open($fh, IO::Handle::_open_mode_string($mode), $file);
# spent 9.93s making 18793 calls to IO::File::CORE:open, avg 528µs/call # spent 477ms making 18793 calls to IO::Handle::_open_mode_string, avg 25µs/call
186 }
187 }
188 open($fh, $file);
189}
190
191################################################
192## Binmode
193##
194
195
# spent 169ms (132+36.7) within IO::File::binmode which was called 18793 times, avg 9µs/call: # 18793 times (132ms+36.7ms) by Archive::Zip::_binmode at line 373 of Archive/Zip.pm, avg 9µs/call
sub binmode {
1961879314.0ms ( @_ == 1 or @_ == 2 ) or croak 'usage $fh->binmode([LAYER])';
197
1981879319.4ms my($fh, $layer) = @_;
199
20018793156ms1879336.7ms return binmode $$fh unless $layer;
# spent 36.7ms making 18793 calls to IO::File::CORE:binmode, avg 2µs/call
201 return binmode $$fh, $layer;
202}
203
204138µs1;
 
# spent 36.7ms within IO::File::CORE:binmode which was called 18793 times, avg 2µs/call: # 18793 times (36.7ms+0s) by IO::File::binmode at line 200, avg 2µs/call
sub IO::File::CORE:binmode; # opcode
# spent 51.2ms within IO::File::CORE:match which was called 37654 times, avg 1µs/call: # 37586 times (51.1ms+0s) by IO::File::open at line 178, avg 1µs/call # 68 times (41µs+0s) by Archive::Zip::BEGIN@10 at line 147, avg 603ns/call
sub IO::File::CORE:match; # opcode
# spent 9.93s within IO::File::CORE:open which was called 18793 times, avg 528µs/call: # 18793 times (9.93s+0s) by IO::File::open at line 185, avg 528µs/call
sub IO::File::CORE:open; # opcode