← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Wed Dec 14 16:10:05 2022
Reported on Wed Dec 14 16:12:56 2022

Filename/Users/ether/perl5/perlbrew/perls/36.0/lib/5.36.0/darwin-2level/Config.pm
StatementsExecuted 36 statements in 932µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1112.61ms2.69msConfig::::AUTOLOADConfig::AUTOLOAD
11125µs29µsConfig::::BEGIN@9Config::BEGIN@9
22221µs2.75msConfig::::FETCHConfig::FETCH
22218µs18µsConfig::::importConfig::import
1117µs13µsConfig::::BEGIN@47Config::BEGIN@47
1115µs36µsConfig::::BEGIN@10Config::BEGIN@10
1112µs2µsConfig::::TIEHASHConfig::TIEHASH
0000s0sConfig::::DESTROYConfig::DESTROY
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# This file was created by configpm when Perl was built. Any changes
2# made to this file will be lost the next time perl is built.
3
4# for a description of the variables, please have a look at the
5# Glossary file, as written in the Porting folder, or use the url:
6# https://github.com/Perl/perl5/blob/blead/Porting/Glossary
7
8package Config;
9235µs233µs
# spent 29µs (25+4) within Config::BEGIN@9 which was called: # once (25µs+4µs) by Moo::_Utils::BEGIN@35 at line 9
use strict;
# spent 29µs making 1 call to Config::BEGIN@9 # spent 4µs making 1 call to strict::import
102155µs267µs
# spent 36µs (5+31) within Config::BEGIN@10 which was called: # once (5µs+31µs) by Moo::_Utils::BEGIN@35 at line 10
use warnings;
# spent 36µs making 1 call to Config::BEGIN@10 # spent 31µs making 1 call to warnings::import
11our ( %Config, $VERSION );
12
1312µs$VERSION = "5.036000";
14
15# Skip @Config::EXPORT because it only contains %Config, which we special
16# case below as it's not a function. @Config::EXPORT won't change in the
17# lifetime of Perl 5.
1813µsmy %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1,
19 config_re => 1, compile_date => 1, local_patches => 1,
20 bincompat_options => 1, non_bincompat_options => 1,
21 header_files => 1);
22
2311µs@Config::EXPORT = qw(%Config);
2412µs@Config::EXPORT_OK = keys %Export_Cache;
25
26# Need to stub all the functions to make code such as print Config::config_sh
27# keep working
28
29sub bincompat_options;
30sub compile_date;
31sub config_re;
32sub config_sh;
33sub config_vars;
34sub header_files;
35sub local_patches;
36sub myconfig;
37sub non_bincompat_options;
38
39# Define our own import method to avoid pulling in the full Exporter:
40
# spent 18µs within Config::import which was called 2 times, avg 9µs/call: # once (10µs+0s) by Path::Tiny::BEGIN@11 at line 11 of Path/Tiny.pm # once (8µs+0s) by Pod::Usage::BEGIN@17 at line 17 of Pod/Usage.pm
sub import {
4120s shift;
4222µs @_ = @Config::EXPORT unless @_;
43
4423µs my @funcs = grep $_ ne '%Config', @_;
4521µs my $export_Config = @funcs < @_ ? 1 : 0;
46
472413µs219µs
# spent 13µs (7+6) within Config::BEGIN@47 which was called: # once (7µs+6µs) by Moo::_Utils::BEGIN@35 at line 47
no strict 'refs';
# spent 13µs making 1 call to Config::BEGIN@47 # spent 6µs making 1 call to strict::unimport
4822µs my $callpkg = caller(0);
4922µs foreach my $func (@funcs) {
50 die qq{"$func" is not exported by the Config module\n}
51 unless $Export_Cache{$func};
52 *{$callpkg.'::'.$func} = \&{$func};
53 }
54
5525µs *{"$callpkg\::Config"} = \%Config if $export_Config;
5626µs return;
57}
58
59127µs15µsdie "$0: Perl lib version (5.36.0) doesn't match executable '$^X' version ($])"
# spent 5µs making 1 call to version::(bool
60 unless $^V;
61
62123µs113µs$^V eq 5.36.0
# spent 13µs making 1 call to version::(cmp
63 or die sprintf "%s: Perl lib version (5.36.0) doesn't match executable '$^X' version (%vd)", $0, $^V;
64
65
66
# spent 2.75ms (21µs+2.73) within Config::FETCH which was called 2 times, avg 1.37ms/call: # once (16µs+2.73ms) by JSON::Schema::Modern::BEGIN@25 at line 64 of Path/Tiny.pm # once (5µs+0s) by Moo::BEGIN@6 at line 284 of Moo/_Utils.pm
sub FETCH {
6722µs my($self, $key) = @_;
68
69 # check for cached value (which may be undef so we use exists not defined)
70218µs12.69ms return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key);
# spent 2.69ms making 1 call to Config::AUTOLOAD
71}
72
73
# spent 2µs within Config::TIEHASH which was called: # once (2µs+0s) by Moo::_Utils::BEGIN@35 at line 86
sub TIEHASH {
7414µs bless $_[1], $_[0];
75}
76
77sub DESTROY { }
78
79
# spent 2.69ms (2.61+79µs) within Config::AUTOLOAD which was called: # once (2.61ms+79µs) by Config::FETCH at line 70
sub AUTOLOAD {
801175µs require 'Config_heavy.pl';
81112µs210µs goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
# spent 9µs making 1 call to Config::launcher # spent 1µs making 1 call to Config::CORE:match
82 die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
83}
84
85# tie returns the object, so the value returned to require will be true.
86139µs12µstie %Config, 'Config', {
# spent 2µs making 1 call to Config::TIEHASH
87 archlibexp => '/Users/ether/perl5/perlbrew/perls/36.0/lib/5.36.0/darwin-2level',
88 archname => 'darwin-2level',
89 cc => 'cc',
90 d_readlink => 'define',
91 d_symlink => 'define',
92 dlext => 'bundle',
93 dlsrc => 'dl_dlopen.xs',
94 dont_use_nlink => undef,
95 exe_ext => '',
96 inc_version_list => ' ',
97 intsize => '4',
98 ldlibpthname => 'DYLD_LIBRARY_PATH',
99 libpth => '/usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.0.0/lib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /opt/local/lib /usr/lib',
100 osname => 'darwin',
101 osvers => '20.6.0',
102 path_sep => ':',
103 privlibexp => '/Users/ether/perl5/perlbrew/perls/36.0/lib/5.36.0',
104 scriptdir => '/Users/ether/perl5/perlbrew/perls/36.0/bin',
105 sitearchexp => '/Users/ether/perl5/perlbrew/perls/36.0/lib/site_perl/5.36.0/darwin-2level',
106 sitelibexp => '/Users/ether/perl5/perlbrew/perls/36.0/lib/site_perl/5.36.0',
107 so => 'dylib',
108 useithreads => undef,
109 usevendorprefix => undef,
110 version => '5.36.0',
111};