Profile of /usr/local/lib/perl5/5.10.1/darwin-2level/Fcntl.pm

← Index
NYTProf Performance Profile «block view•line view•sub view»
For 01.HTTP.t
Run on Tue May 4 15:25:55 2010
Reported on Tue May 4 15:26:04 2010

File | /usr/local/lib/perl5/5.10.1/darwin-2level/Fcntl.pm
Statements Executed | 20
Statement Execution Time | 889µs

Subroutines — ordered by exclusive time
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
1 | 1 | 1 | 14µs | 17µs | Fcntl::::BEGIN@58Fcntl::BEGIN@58
1 | 1 | 1 | 10µs | 21µs | Fcntl::::BEGIN@239Fcntl::BEGIN@239
1 | 1 | 1 | 9µs | 263µs | Fcntl::::BEGIN@214Fcntl::BEGIN@214
1 | 1 | 1 | 4µs | 4µs | Fcntl::::BEGIN@64Fcntl::BEGIN@64
1 | 1 | 1 | 4µs | 4µs | Fcntl::::BEGIN@62Fcntl::BEGIN@62
0 | 0 | 0 | 0s | 0s | Fcntl::::AUTOLOADFcntl::AUTOLOAD
0 | 0 | 0 | 0s | 0s | Fcntl::::S_IFMTFcntl::S_IFMT
0 | 0 | 0 | 0s | 0s | Fcntl::::S_IMODEFcntl::S_IMODE
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISBLKFcntl::S_ISBLK
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISCHRFcntl::S_ISCHR
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISDIRFcntl::S_ISDIR
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISENFMTFcntl::S_ISENFMT
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISFIFOFcntl::S_ISFIFO
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISLNKFcntl::S_ISLNK
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISREGFcntl::S_ISREG
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISSOCKFcntl::S_ISSOCK
0 | 0 | 0 | 0s | 0s | Fcntl::::S_ISWHTFcntl::S_ISWHT
0 | 0 | 0 | 0s | 0s | Fcntl::::__ANON__[:240]Fcntl::__ANON__[:240]

Call graph for these subroutines as a Graphviz dot language file.

Line | State ments | Time on line | Calls | Time in subs | Code
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | package Fcntl;
2 |  |  |  |  |
3 |  |  |  |  | =head1 NAME
4 |  |  |  |  |
5 |  |  |  |  | Fcntl - load the C Fcntl.h defines
6 |  |  |  |  |
7 |  |  |  |  | =head1 SYNOPSIS
8 |  |  |  |  |
9 |  |  |  |  | use Fcntl;
10 |  |  |  |  | use Fcntl qw(:DEFAULT :flock);
11 |  |  |  |  |
12 |  |  |  |  | =head1 DESCRIPTION
13 |  |  |  |  |
14 |  |  |  |  | This module is just a translation of the C F<fcntl.h> file.
15 |  |  |  |  | Unlike the old mechanism of requiring a translated F<fcntl.ph>
16 |  |  |  |  | file, this uses the B<h2xs> program (see the Perl source distribution)
17 |  |  |  |  | and your native C compiler. This means that it has a
18 |  |  |  |  | far more likely chance of getting the numbers right.
19 |  |  |  |  |
20 |  |  |  |  | =head1 NOTE
21 |  |  |  |  |
22 |  |  |  |  | Only C<#define> symbols get translated; you must still correctly
23 |  |  |  |  | pack up your own arguments to pass as args for locking functions, etc.
24 |  |  |  |  |
25 |  |  |  |  | =head1 EXPORTED SYMBOLS
26 |  |  |  |  |
27 |  |  |  |  | By default your system's F_* and O_* constants (eg, F_DUPFD and
28 |  |  |  |  | O_CREAT) and the FD_CLOEXEC constant are exported into your namespace.
29 |  |  |  |  |
30 |  |  |  |  | You can request that the flock() constants (LOCK_SH, LOCK_EX, LOCK_NB
31 |  |  |  |  | and LOCK_UN) be provided by using the tag C<:flock>. See L<Exporter>.
32 |  |  |  |  |
33 |  |  |  |  | You can request that the old constants (FAPPEND, FASYNC, FCREAT,
34 |  |  |  |  | FDEFER, FEXCL, FNDELAY, FNONBLOCK, FSYNC, FTRUNC) be provided for
35 |  |  |  |  | compatibility reasons by using the tag C<:Fcompat>. For new
36 |  |  |  |  | applications the newer versions of these constants are suggested
37 |  |  |  |  | (O_APPEND, O_ASYNC, O_CREAT, O_DEFER, O_EXCL, O_NDELAY, O_NONBLOCK,
38 |  |  |  |  | O_SYNC, O_TRUNC).
39 |  |  |  |  |
40 |  |  |  |  | For ease of use also the SEEK_* constants (for seek() and sysseek(),
41 |  |  |  |  | e.g. SEEK_END) and the S_I* constants (for chmod() and stat()) are
42 |  |  |  |  | available for import. They can be imported either separately or using
43 |  |  |  |  | the tags C<:seek> and C<:mode>.
44 |  |  |  |  |
45 |  |  |  |  | Please refer to your native fcntl(2), open(2), fseek(3), lseek(2)
46 |  |  |  |  | (equal to Perl's seek() and sysseek(), respectively), and chmod(2)
47 |  |  |  |  | documentation to see what constants are implemented in your system.
48 |  |  |  |  |
49 |  |  |  |  | See L<perlopentut> to learn about the uses of the O_* constants
50 |  |  |  |  | with sysopen().
51 |  |  |  |  |
52 |  |  |  |  | See L<perlfunc/seek> and L<perlfunc/sysseek> about the SEEK_* constants.
53 |  |  |  |  |
54 |  |  |  |  | See L<perlfunc/stat> about the S_I* constants.
55 |  |  |  |  |
56 |  |  |  |  | =cut
57 |  |  |  |  |
58 | 3 | 45µs | 2 | 20µs | # spent 17µs (14+3) within Fcntl::BEGIN@58 which was called # once (14µs+3µs) by IO::Seekable::BEGIN@104 at line 58 use strict; # spent 17µs making 1 call to Fcntl::BEGIN@58 # spent 3µs making 1 call to strict::import
59 | 1 | 500ns |  |  | our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $AUTOLOAD);
60 |  |  |  |  |
61 | 1 | 600ns |  |  | require Exporter;
62 | 3 | 28µs | 1 | 4µs | # spent 4µs within Fcntl::BEGIN@62 which was called # once (4µs+0s) by IO::Seekable::BEGIN@104 at line 62 use XSLoader (); # spent 4µs making 1 call to Fcntl::BEGIN@62
63 | 1 | 8µs |  |  | @ISA = qw(Exporter);
64 |  |  |  |  | # spent 4µs within Fcntl::BEGIN@64 which was called # once (4µs+0s) by IO::Seekable::BEGIN@104 at line 66 BEGIN {
65 | 1 | 3µs |  |  | $VERSION = "1.06";
66 | 1 | 155µs | 1 | 4µs | } # spent 4µs making 1 call to Fcntl::BEGIN@64
67 |  |  |  |  |
68 |  |  |  |  | # Items to export into callers namespace by default
69 |  |  |  |  | # (move infrequently used names to @EXPORT_OK below)
70 | 1 | 9µs |  |  | @EXPORT =
71 |  |  |  |  | qw(
72 |  |  |  |  | FD_CLOEXEC
73 |  |  |  |  | F_ALLOCSP
74 |  |  |  |  | F_ALLOCSP64
75 |  |  |  |  | F_COMPAT
76 |  |  |  |  | F_DUP2FD
77 |  |  |  |  | F_DUPFD
78 |  |  |  |  | F_EXLCK
79 |  |  |  |  | F_FREESP
80 |  |  |  |  | F_FREESP64
81 |  |  |  |  | F_FSYNC
82 |  |  |  |  | F_FSYNC64
83 |  |  |  |  | F_GETFD
84 |  |  |  |  | F_GETFL
85 |  |  |  |  | F_GETLK
86 |  |  |  |  | F_GETLK64
87 |  |  |  |  | F_GETOWN
88 |  |  |  |  | F_NODNY
89 |  |  |  |  | F_POSIX
90 |  |  |  |  | F_RDACC
91 |  |  |  |  | F_RDDNY
92 |  |  |  |  | F_RDLCK
93 |  |  |  |  | F_RWACC
94 |  |  |  |  | F_RWDNY
95 |  |  |  |  | F_SETFD
96 |  |  |  |  | F_SETFL
97 |  |  |  |  | F_SETLK
98 |  |  |  |  | F_SETLK64
99 |  |  |  |  | F_SETLKW
100 |  |  |  |  | F_SETLKW64
101 |  |  |  |  | F_SETOWN
102 |  |  |  |  | F_SHARE
103 |  |  |  |  | F_SHLCK
104 |  |  |  |  | F_UNLCK
105 |  |  |  |  | F_UNSHARE
106 |  |  |  |  | F_WRACC
107 |  |  |  |  | F_WRDNY
108 |  |  |  |  | F_WRLCK
109 |  |  |  |  | O_ACCMODE
110 |  |  |  |  | O_ALIAS
111 |  |  |  |  | O_APPEND
112 |  |  |  |  | O_ASYNC
113 |  |  |  |  | O_BINARY
114 |  |  |  |  | O_CREAT
115 |  |  |  |  | O_DEFER
116 |  |  |  |  | O_DIRECT
117 |  |  |  |  | O_DIRECTORY
118 |  |  |  |  | O_DSYNC
119 |  |  |  |  | O_EXCL
120 |  |  |  |  | O_EXLOCK
121 |  |  |  |  | O_LARGEFILE
122 |  |  |  |  | O_NDELAY
123 |  |  |  |  | O_NOCTTY
124 |  |  |  |  | O_NOFOLLOW
125 |  |  |  |  | O_NOINHERIT
126 |  |  |  |  | O_NONBLOCK
127 |  |  |  |  | O_RANDOM
128 |  |  |  |  | O_RAW
129 |  |  |  |  | O_RDONLY
130 |  |  |  |  | O_RDWR
131 |  |  |  |  | O_RSRC
132 |  |  |  |  | O_RSYNC
133 |  |  |  |  | O_SEQUENTIAL
134 |  |  |  |  | O_SHLOCK
135 |  |  |  |  | O_SYNC
136 |  |  |  |  | O_TEMPORARY
137 |  |  |  |  | O_TEXT
138 |  |  |  |  | O_TRUNC
139 |  |  |  |  | O_WRONLY
140 |  |  |  |  | );
141 |  |  |  |  |
142 |  |  |  |  | # Other items we are prepared to export if requested
143 | 1 | 10µs |  |  | @EXPORT_OK = qw(
144 |  |  |  |  | DN_ACCESS
145 |  |  |  |  | DN_ATTRIB
146 |  |  |  |  | DN_CREATE
147 |  |  |  |  | DN_DELETE
148 |  |  |  |  | DN_MODIFY
149 |  |  |  |  | DN_MULTISHOT
150 |  |  |  |  | DN_RENAME
151 |  |  |  |  | FAPPEND
152 |  |  |  |  | FASYNC
153 |  |  |  |  | FCREAT
154 |  |  |  |  | FDEFER
155 |  |  |  |  | FDSYNC
156 |  |  |  |  | FEXCL
157 |  |  |  |  | FLARGEFILE
158 |  |  |  |  | FNDELAY
159 |  |  |  |  | FNONBLOCK
160 |  |  |  |  | FRSYNC
161 |  |  |  |  | FSYNC
162 |  |  |  |  | FTRUNC
163 |  |  |  |  | F_GETLEASE
164 |  |  |  |  | F_GETSIG
165 |  |  |  |  | F_NOTIFY
166 |  |  |  |  | F_SETLEASE
167 |  |  |  |  | F_SETSIG
168 |  |  |  |  | LOCK_EX
169 |  |  |  |  | LOCK_MAND
170 |  |  |  |  | LOCK_NB
171 |  |  |  |  | LOCK_READ
172 |  |  |  |  | LOCK_RW
173 |  |  |  |  | LOCK_SH
174 |  |  |  |  | LOCK_UN
175 |  |  |  |  | LOCK_WRITE
176 |  |  |  |  | O_IGNORE_CTTY
177 |  |  |  |  | O_NOATIME
178 |  |  |  |  | O_NOLINK
179 |  |  |  |  | O_NOTRANS
180 |  |  |  |  | SEEK_CUR
181 |  |  |  |  | SEEK_END
182 |  |  |  |  | SEEK_SET
183 |  |  |  |  | S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
184 |  |  |  |  | S_IREAD S_IWRITE S_IEXEC
185 |  |  |  |  | S_IRGRP S_IWGRP S_IXGRP S_IRWXG
186 |  |  |  |  | S_IROTH S_IWOTH S_IXOTH S_IRWXO
187 |  |  |  |  | S_IRUSR S_IWUSR S_IXUSR S_IRWXU
188 |  |  |  |  | S_ISUID S_ISGID S_ISVTX S_ISTXT
189 |  |  |  |  | _S_IFMT S_IFREG S_IFDIR S_IFLNK
190 |  |  |  |  | &S_ISREG &S_ISDIR &S_ISLNK &S_ISSOCK &S_ISBLK &S_ISCHR &S_ISFIFO
191 |  |  |  |  | &S_ISWHT &S_ISENFMT &S_IFMT &S_IMODE
192 |  |  |  |  | );
193 |  |  |  |  | # Named groups of exports
194 | 1 | 19µs |  |  | %EXPORT_TAGS = (
195 |  |  |  |  | 'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
196 |  |  |  |  | 'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
197 |  |  |  |  | FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
198 |  |  |  |  | 'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)],
199 |  |  |  |  | 'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT
200 |  |  |  |  | _S_IFMT S_IFREG S_IFDIR S_IFLNK
201 |  |  |  |  | S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
202 |  |  |  |  | S_IRUSR S_IWUSR S_IXUSR S_IRWXU
203 |  |  |  |  | S_IRGRP S_IWGRP S_IXGRP S_IRWXG
204 |  |  |  |  | S_IROTH S_IWOTH S_IXOTH S_IRWXO
205 |  |  |  |  | S_IREAD S_IWRITE S_IEXEC
206 |  |  |  |  | S_ISREG S_ISDIR S_ISLNK S_ISSOCK
207 |  |  |  |  | S_ISBLK S_ISCHR S_ISFIFO
208 |  |  |  |  | S_ISWHT S_ISENFMT
209 |  |  |  |  | S_IFMT S_IMODE
210 |  |  |  |  | )],
211 |  |  |  |  | );
212 |  |  |  |  |
213 |  |  |  |  | # Force the constants to become inlined
214 |  |  |  |  | # spent 263µs (9+254) within Fcntl::BEGIN@214 which was called # once (9µs+254µs) by IO::Seekable::BEGIN@104 at line 216 BEGIN {
215 | 1 | 262µs | 1 | 254µs | XSLoader::load 'Fcntl', $VERSION; # spent 254µs making 1 call to XSLoader::load
216 | 1 | 231µs | 1 | 263µs | } # spent 263µs making 1 call to Fcntl::BEGIN@214
217 |  |  |  |  |
218 |  |  |  |  | sub S_IFMT { @_ ? ( $_[0] & _S_IFMT() ) : _S_IFMT() }
219 |  |  |  |  | sub S_IMODE { $_[0] & 07777 }
220 |  |  |  |  |
221 |  |  |  |  | sub S_ISREG { ( $_[0] & _S_IFMT() ) == S_IFREG() }
222 |  |  |  |  | sub S_ISDIR { ( $_[0] & _S_IFMT() ) == S_IFDIR() }
223 |  |  |  |  | sub S_ISLNK { ( $_[0] & _S_IFMT() ) == S_IFLNK() }
224 |  |  |  |  | sub S_ISSOCK { ( $_[0] & _S_IFMT() ) == S_IFSOCK() }
225 |  |  |  |  | sub S_ISBLK { ( $_[0] & _S_IFMT() ) == S_IFBLK() }
226 |  |  |  |  | sub S_ISCHR { ( $_[0] & _S_IFMT() ) == S_IFCHR() }
227 |  |  |  |  | sub S_ISFIFO { ( $_[0] & _S_IFMT() ) == S_IFIFO() }
228 |  |  |  |  | sub S_ISWHT { ( $_[0] & _S_IFMT() ) == S_IFWHT() }
229 |  |  |  |  | sub S_ISENFMT { ( $_[0] & _S_IFMT() ) == S_IFENFMT() }
230 |  |  |  |  |
231 |  |  |  |  | sub AUTOLOAD {
232 |  |  |  |  | (my $constname = $AUTOLOAD) =~ s/.*:://;
233 |  |  |  |  | die "&Fcntl::constant not defined" if $constname eq 'constant';
234 |  |  |  |  | my ($error, $val) = constant($constname);
235 |  |  |  |  | if ($error) {
236 |  |  |  |  | my (undef,$file,$line) = caller;
237 |  |  |  |  | die "$error at $file line $line.\n";
238 |  |  |  |  | }
239 | 3 | 67µs | 2 | 33µs | # spent 21µs (10+11) within Fcntl::BEGIN@239 which was called # once (10µs+11µs) by IO::Seekable::BEGIN@104 at line 239 no strict 'refs'; # spent 21µs making 1 call to Fcntl::BEGIN@239 # spent 11µs making 1 call to strict::unimport
240 |  |  |  |  | *$AUTOLOAD = sub { $val };
241 |  |  |  |  | goto &$AUTOLOAD;
242 |  |  |  |  | }
243 |  |  |  |  |
244 | 1 | 49µs |  |  | 1;