Filename | /home/hejohns/documentsNoSync/22f/490/gradescope-utils/bin/split.pl |
Statements | Executed 665651 statements in 6.63s |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
133035 | 1 | 1 | 5.84s | 53701s | __ANON__[split.pl:90] | main::
1729578 | 12 | 5 | 2.48s | 2.48s | isa (xsub) | UNIVERSAL::
133035 | 1 | 1 | 1.46s | 53563s | __ANON__[split.pl:88] | main::
1 | 1 | 1 | 99.4ms | 218ms | BEGIN@8 | main::
1 | 1 | 1 | 11.8ms | 14.2ms | BEGIN@29 | main::
1 | 1 | 1 | 7.70ms | 19.1ms | BEGIN@24 | main::
1 | 1 | 1 | 5.42ms | 6.00ms | BEGIN@32 | main::
1 | 1 | 1 | 4.78ms | 28.3ms | BEGIN@30 | main::
1 | 1 | 1 | 4.66ms | 13.8ms | BEGIN@18 | main::
1 | 1 | 1 | 2.16ms | 2.37ms | BEGIN@14 | main::
1 | 1 | 1 | 1.94ms | 3.10ms | BEGIN@26 | main::
1 | 1 | 1 | 1.66ms | 27.1ms | BEGIN@33 | main::
1 | 1 | 1 | 1.64ms | 7.14ms | BEGIN@19 | main::
1 | 1 | 1 | 1.46ms | 2.57ms | BEGIN@16 | main::
1 | 1 | 1 | 1.22ms | 4.73ms | BEGIN@21 | main::
1 | 1 | 1 | 1.03ms | 14.7ms | BEGIN@48 | main::
1 | 1 | 1 | 896µs | 1.00ms | BEGIN@15 | main::
1 | 1 | 1 | 860µs | 894µs | BEGIN@43 | main::
1 | 1 | 1 | 832µs | 2.22ms | BEGIN@22 | main::
1 | 1 | 1 | 770µs | 1.27ms | BEGIN@5 | main::
1 | 1 | 1 | 669µs | 2.39ms | BEGIN@12 | main::
1 | 1 | 1 | 625µs | 673µs | BEGIN@6 | main::
1 | 1 | 1 | 508µs | 7.14ms | BEGIN@20 | main::
1 | 1 | 1 | 470µs | 1.28ms | BEGIN@50 | main::
1 | 1 | 1 | 410µs | 598µs | BEGIN@35 | main::
1 | 1 | 1 | 404µs | 60.6ms | BEGIN@51 | main::
1 | 1 | 1 | 164µs | 2.06ms | BEGIN@4 | main::
1 | 1 | 1 | 106µs | 151µs | BEGIN@41 | main::
12 | 12 | 6 | 51µs | 51µs | VERSION (xsub) | UNIVERSAL::
40 | 1 | 1 | 18µs | 18µs | method_changed_in (xsub) | mro::
1 | 1 | 1 | 17µs | 17µs | BEGIN@3 | main::
1 | 1 | 1 | 17µs | 18µs | O_NOINHERIT | Fcntl::
41 | 3 | 1 | 17µs | 17µs | SvREADONLY (xsub) | Internals::
1 | 1 | 1 | 13µs | 13µs | CORE:readline (opcode) | main::
10 | 6 | 6 | 12µs | 12µs | can (xsub) | UNIVERSAL::
1 | 1 | 1 | 8µs | 34µs | BEGIN@11 | main::
1 | 1 | 1 | 6µs | 7µs | O_EXLOCK | Fcntl::
1 | 1 | 1 | 6µs | 315µs | BEGIN@1240 | Text::CSV_XS::
1 | 1 | 1 | 6µs | 6µs | O_TEMPORARY | Fcntl::
1 | 1 | 1 | 4µs | 12µs | BEGIN@44 | main::
1 | 1 | 1 | 4µs | 16µs | BEGIN@42 | main::
3 | 1 | 1 | 4µs | 4µs | find (xsub) | PerlIO::Layer::
1 | 1 | 1 | 2µs | 2µs | CORE:pack (opcode) | main::
1 | 1 | 1 | 2µs | 2µs | BEGIN@7 | main::
1 | 1 | 1 | 700ns | 700ns | __ANON__ (xsub) | main::
0 | 0 | 0 | 0s | 0s | RUNTIME | main::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
0 | 2 | 422µs | Profile data that couldn't be associated with a specific line: # spent 315µs making 1 call to Text::CSV_XS::BEGIN@1240
# spent 107µs making 1 call to File::Temp::END | ||
1 | 1 | 1.81ms | #!/usr/bin/env perl | ||
2 | |||||
3 | 2 | 29µs | 1 | 17µs | # spent 17µs within main::BEGIN@3 which was called:
# once (17µs+0s) by main::NULL at line 3 # spent 17µs making 1 call to main::BEGIN@3 |
4 | 2 | 89µs | 2 | 2.06ms | # spent 2.06ms (164µs+1.89) within main::BEGIN@4 which was called:
# once (164µs+1.89ms) by main::NULL at line 4 # spent 2.06ms making 1 call to main::BEGIN@4
# spent 1µs making 1 call to utf8::import |
5 | 3 | 74µs | 3 | 1.72ms | # spent 1.27ms (770µs+496µs) within main::BEGIN@5 which was called:
# once (770µs+496µs) by main::NULL at line 5 # spent 1.27ms making 1 call to main::BEGIN@5
# spent 436µs making 1 call to strictures::import
# spent 16µs making 1 call to strictures::VERSION |
6 | 2 | 113µs | 2 | 704µs | # spent 673µs (625+48) within main::BEGIN@6 which was called:
# once (625µs+48µs) by main::NULL at line 6 # spent 673µs making 1 call to main::BEGIN@6
# spent 31µs making 1 call to open::import |
7 | 1 | 17µs | 1 | 2µs | # spent 2µs within main::BEGIN@7 which was called:
# once (2µs+0s) by main::NULL at line 7 # spent 2µs making 1 call to main::BEGIN@7 |
8 | 2 | 819µs | 2 | 218ms | # spent 218ms (99.4+119) within main::BEGIN@8 which was called:
# once (99.4ms+119ms) by main::NULL at line 8 # spent 218ms making 1 call to main::BEGIN@8
# spent 21µs making 1 call to diagnostics::import |
9 | |||||
10 | # Carp | ||||
11 | 2 | 116µs | 2 | 59µs | # spent 34µs (8+25) within main::BEGIN@11 which was called:
# once (8µs+25µs) by main::NULL at line 11 # spent 34µs making 1 call to main::BEGIN@11
# spent 25µs making 1 call to Exporter::import |
12 | 2 | 85µs | 2 | 2.46ms | # spent 2.39ms (669µs+1.72) within main::BEGIN@12 which was called:
# once (669µs+1.72ms) by main::NULL at line 12 # spent 2.39ms making 1 call to main::BEGIN@12
# spent 66µs making 1 call to Carp::Assert::import |
13 | # filepath functions | ||||
14 | 2 | 83µs | 2 | 2.39ms | # spent 2.37ms (2.16+208µs) within main::BEGIN@14 which was called:
# once (2.16ms+208µs) by main::NULL at line 14 # spent 2.37ms making 1 call to main::BEGIN@14
# spent 24µs making 1 call to Exporter::import |
15 | 2 | 117µs | 2 | 1.03ms | # spent 1.00ms (896µs+108µs) within main::BEGIN@15 which was called:
# once (896µs+108µs) by main::NULL at line 15 # spent 1.00ms making 1 call to main::BEGIN@15
# spent 22µs making 1 call to Exporter::import |
16 | 2 | 87µs | 2 | 2.57ms | # spent 2.57ms (1.46+1.11) within main::BEGIN@16 which was called:
# once (1.46ms+1.11ms) by main::NULL at line 16 # spent 2.57ms making 1 call to main::BEGIN@16
# spent 700ns making 1 call to main::__ANON__ |
17 | # misc file utilities | ||||
18 | 2 | 152µs | 2 | 13.8ms | # spent 13.8ms (4.66+9.10) within main::BEGIN@18 which was called:
# once (4.66ms+9.10ms) by main::NULL at line 18 # spent 13.8ms making 1 call to main::BEGIN@18
# spent 28µs making 1 call to Exporter::import |
19 | 2 | 76µs | 2 | 7.16ms | # spent 7.14ms (1.64+5.50) within main::BEGIN@19 which was called:
# once (1.64ms+5.50ms) by main::NULL at line 19 # spent 7.14ms making 1 call to main::BEGIN@19
# spent 23µs making 1 call to Exporter::import |
20 | 2 | 76µs | 2 | 7.15ms | # spent 7.14ms (508µs+6.63) within main::BEGIN@20 which was called:
# once (508µs+6.63ms) by main::NULL at line 20 # spent 7.14ms making 1 call to main::BEGIN@20
# spent 5µs making 1 call to Exporter::import |
21 | 2 | 73µs | 2 | 4.80ms | # spent 4.73ms (1.22+3.51) within main::BEGIN@21 which was called:
# once (1.22ms+3.51ms) by main::NULL at line 21 # spent 4.73ms making 1 call to main::BEGIN@21
# spent 68µs making 1 call to JSON::import |
22 | 2 | 70µs | 2 | 2.24ms | # spent 2.22ms (832µs+1.39) within main::BEGIN@22 which was called:
# once (832µs+1.39ms) by main::NULL at line 22 # spent 2.22ms making 1 call to main::BEGIN@22
# spent 15µs making 1 call to Exporter::import |
23 | # misc scripting IO utilities | ||||
24 | 2 | 86µs | 2 | 19.1ms | # spent 19.1ms (7.70+11.4) within main::BEGIN@24 which was called:
# once (7.70ms+11.4ms) by main::NULL at line 24 # spent 19.1ms making 1 call to main::BEGIN@24
# spent 14µs making 1 call to IO::Prompter::import |
25 | # `capture_stdout` for backticks w/o shell (escaping issues) | ||||
26 | 2 | 83µs | 2 | 3.17ms | # spent 3.10ms (1.94+1.16) within main::BEGIN@26 which was called:
# once (1.94ms+1.16ms) by main::NULL at line 26 # spent 3.10ms making 1 call to main::BEGIN@26
# spent 75µs making 1 call to Exporter::import |
27 | # for more complicated stuff | ||||
28 | # eg timeout, redirection | ||||
29 | 2 | 80µs | 2 | 14.2ms | # spent 14.2ms (11.8+2.35) within main::BEGIN@29 which was called:
# once (11.8ms+2.35ms) by main::NULL at line 29 # spent 14.2ms making 1 call to main::BEGIN@29
# spent 12µs making 1 call to Exporter::import |
30 | 2 | 114µs | 2 | 28.3ms | # spent 28.3ms (4.78+23.6) within main::BEGIN@30 which was called:
# once (4.78ms+23.6ms) by main::NULL at line 30 # spent 28.3ms making 1 call to main::BEGIN@30
# spent 18µs making 1 call to Exporter::import |
31 | # option/arg handling | ||||
32 | 2 | 118µs | 2 | 6.09ms | # spent 6.00ms (5.42+578µs) within main::BEGIN@32 which was called:
# once (5.42ms+578µs) by main::NULL at line 32 # spent 6.00ms making 1 call to main::BEGIN@32
# spent 88µs making 1 call to Getopt::Long::import |
33 | 2 | 110µs | 2 | 27.2ms | # spent 27.1ms (1.66+25.5) within main::BEGIN@33 which was called:
# once (1.66ms+25.5ms) by main::NULL at line 33 # spent 27.1ms making 1 call to main::BEGIN@33
# spent 62µs making 1 call to Exporter::import |
34 | # use local modules | ||||
35 | # spent 598µs (410+188) within main::BEGIN@35 which was called:
# once (410µs+188µs) by main::NULL at line 38 | ||||
36 | 1 | 50µs | 7 | 161µs | dirname(abs_path($0)), # spent 52µs making 2 calls to File::Basename::dirname, avg 26µs/call
# spent 44µs making 1 call to lib::import
# spent 35µs making 3 calls to Cwd::abs_path, avg 12µs/call
# spent 30µs making 1 call to File::Spec::Unix::rel2abs |
37 | abs_path(File::Spec->rel2abs('../lib/', dirname(abs_path($0)))), | ||||
38 | 1 | 110µs | 1 | 598µs | ); # https://stackoverflow.com/a/46550384 # spent 598µs making 1 call to main::BEGIN@35 |
39 | |||||
40 | # turn on features | ||||
41 | 2 | 103µs | 2 | 156µs | # spent 151µs (106+45) within main::BEGIN@41 which was called:
# once (106µs+45µs) by main::NULL at line 41 # spent 151µs making 1 call to main::BEGIN@41
# spent 5µs making 1 call to builtin::import |
42 | 2 | 15µs | 2 | 29µs | # spent 16µs (4+13) within main::BEGIN@42 which was called:
# once (4µs+13µs) by main::NULL at line 42 # spent 16µs making 1 call to main::BEGIN@42
# spent 13µs making 1 call to warnings::unimport |
43 | 2 | 844µs | 2 | 928µs | # spent 894µs (860+34) within main::BEGIN@43 which was called:
# once (860µs+34µs) by main::NULL at line 43 # spent 894µs making 1 call to main::BEGIN@43
# spent 34µs making 1 call to feature::import |
44 | 2 | 27µs | 2 | 20µs | # spent 12µs (4+8) within main::BEGIN@44 which was called:
# once (4µs+8µs) by main::NULL at line 44 # spent 12µs making 1 call to main::BEGIN@44
# spent 8µs making 1 call to warnings::unimport |
45 | |||||
46 | 1 | 11µs | 1 | 4µs | our $VERSION = version->declare('v2022.12.30'); # spent 4µs making 1 call to version::declare |
47 | # end prelude | ||||
48 | 2 | 85µs | 2 | 14.9ms | # spent 14.7ms (1.03+13.7) within main::BEGIN@48 which was called:
# once (1.03ms+13.7ms) by main::NULL at line 48 # spent 14.7ms making 1 call to main::BEGIN@48
# spent 247µs making 1 call to Data::Printer::import |
49 | |||||
50 | 2 | 90µs | 2 | 1.28ms | # spent 1.28ms (470µs+807µs) within main::BEGIN@50 which was called:
# once (470µs+807µs) by main::NULL at line 50 # spent 1.28ms making 1 call to main::BEGIN@50
# spent 6µs making 1 call to Exporter::import |
51 | 2 | 694µs | 2 | 60.6ms | # spent 60.6ms (404µs+60.2) within main::BEGIN@51 which was called:
# once (404µs+60.2ms) by main::NULL at line 51 # spent 60.6ms making 1 call to main::BEGIN@51
# spent 24µs making 1 call to Exporter::import |
52 | |||||
53 | 1 | 200ns | my %options; | ||
54 | 1 | 2µs | 1 | 4µs | GetOptions(\%options, # spent 4µs making 1 call to Getopt::Long::GetOptions |
55 | 'help|h|?', | ||||
56 | 'delimiter|d=s', | ||||
57 | 'keyheader|k=s@', | ||||
58 | 'valueheader|v=s@', | ||||
59 | 'tokenfilter|t|f|p=s@', | ||||
60 | ) or pod2usage(-exitval => 1, -verbose => 2); | ||||
61 | 1 | 500ns | pod2usage(-exitval => 0, -verbose => 2) if $options{help} || @ARGV < 1; | ||
62 | |||||
63 | 1 | 400ns | $options{delimiter} //= ':'; | ||
64 | 1 | 200ns | $options{keyheader} //= ['token']; | ||
65 | 1 | 200ns | $options{valueheader} //= ['submission']; | ||
66 | 1 | 100ns | $options{tokenfilter} //= ['true']; | ||
67 | |||||
68 | 1 | 900ns | $options{keyheader} = [$options{delimiter}, @{$options{keyheader}}]; | ||
69 | |||||
70 | 1 | 400ns | my ($submissions) = @ARGV; | ||
71 | |||||
72 | 1 | 500ns | my $token2uniqname = do { | ||
73 | 1 | 2µs | local $/ = undef; | ||
74 | 1 | 18µs | 2 | 75µs | JSON::from_json <STDIN>; # spent 62µs making 1 call to JSON::from_json
# spent 13µs making 1 call to main::CORE:readline |
75 | }; | ||||
76 | 1 | 20µs | my %token2uniqname = %{$token2uniqname}; | ||
77 | |||||
78 | 1 | 100ns | my %submissions; | ||
79 | 1 | 205µs | for my $token (keys %token2uniqname){ | ||
80 | my %filtered = Gradescope::Translate::read_csv($submissions, | ||||
81 | $options{keyheader}, $options{valueheader}, | ||||
82 | # spent 53701s (5.84+53695) within main::__ANON__[split.pl:90] which was called 133035 times, avg 404ms/call:
# 133035 times (5.84s+53695s) by Text::CSV_XS::__ANON__[/home/hejohns/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/Text/CSV_XS.pm:1460] at line 1457 of Text/CSV_XS.pm, avg 404ms/call | ||||
83 | 133035 | 52.5ms | my $pred = false; | ||
84 | #say JSON::to_json $_[1]; | ||||
85 | 133035 | 138ms | my @row = @{$_[1]}; # capture_stdout takes a code ref, so $_[1] inside is shadowed | ||
86 | # spent 53563s (1.46+53561) within main::__ANON__[split.pl:88] which was called 133035 times, avg 403ms/call:
# 133035 times (1.46s+53561s) by Capture::Tiny::_capture_tee at line 382 of Capture/Tiny.pm, avg 403ms/call | ||||
87 | 133035 | 2.06s | 266070 | 53561s | $pred = run [@{$options{tokenfilter}}, $token], '<', \(JSON::to_json \@row); # spent 53558s making 133035 calls to IPC::Run::run, avg 403ms/call
# spent 3.64s making 133035 calls to JSON::to_json, avg 27µs/call |
88 | 133035 | 3.00s | 133035 | 487ms | }; # spent 487ms making 133035 calls to Capture::Tiny::capture_stdout, avg 4µs/call |
89 | 133035 | 1.37s | return $pred; | ||
90 | }, | ||||
91 | 105 | 2.69ms | 105 | 53715s | ); # spent 53715s making 105 calls to Gradescope::Translate::read_csv, avg 512s/call |
92 | 105 | 341µs | delete @filtered{grep {!defined $filtered{$_}} keys %filtered}; | ||
93 | 105 | 206µs | next if keys %filtered == 0; # some students may not have submissions | ||
94 | 84 | 424µs | $submissions{$token} = \%filtered; | ||
95 | } | ||||
96 | |||||
97 | 1 | 790µs | 2 | 849ms | color_print(JSON::to_json(\%submissions, {pretty => 1, canonical => 1}), 'JSON'); # spent 831ms making 1 call to Gradescope::Color::color_print
# spent 18.6ms making 1 call to JSON::to_json |
98 | |||||
99 | # PODNAME: | ||||
100 | # ABSTRACT: Gradescope submission script component | ||||
101 | =pod | ||||
102 | |||||
103 | =encoding utf8 | ||||
104 | |||||
105 | =head1 SYNOPSIS | ||||
106 | |||||
107 | split.pl : () -> json | ||||
108 | |||||
109 | split.pl [options] I<submissions> | ||||
110 | |||||
111 | split.pl [-t ./field-n-eq?.pl] [-d ':' -k problem_id -v score] submissions.csv < token2uniqname.json | ||||
112 | |||||
113 | =head1 DESCRIPTION | ||||
114 | |||||
115 | splits up the I<submissions> csv | ||||
116 | into individual chunks for upload | ||||
117 | |||||
118 | =head1 OPTIONS | ||||
119 | |||||
120 | =head2 help|h|? | ||||
121 | |||||
122 | =head2 delimiter|d | ||||
123 | |||||
124 | =head2 keyheader|k | ||||
125 | |||||
126 | =head2 valueheader|v | ||||
127 | |||||
128 | keyheader and valueheader will be passed to perl's C<Text::CSV> | ||||
129 | to convert I<submissions> to a key-value, for each token2uniqname token | ||||
130 | (ie stdout is a key-value, keyed by token, value is another key-value) | ||||
131 | |||||
132 | this may require joining multiple csv columns for the key, | ||||
133 | so a delimiter may be specified. | ||||
134 | |||||
135 | =head2 tokenfilter|t | ||||
136 | |||||
137 | command will be fed | ||||
138 | a csv row as json through stdin, | ||||
139 | and passed a student's token as a last argument | ||||
140 | |||||
141 | command is a predicate that should C<exit 0> iff the csv row should be used for the student with that token | ||||
142 | |||||
143 | =head3 bundled lambdas | ||||
144 | |||||
145 | =over 4 | ||||
146 | |||||
147 | =item F<./field-n-eq?.pl> | ||||
148 | |||||
149 | =back | ||||
150 | |||||
151 | =cut | ||||
152 | |||||
- - | |||||
# spent 17µs within Internals::SvREADONLY which was called 41 times, avg 405ns/call:
# 39 times (16µs+0s) by constant::import at line 164 of constant.pm, avg 413ns/call
# once (400ns+0s) by constant::BEGIN@24 at line 33 of constant.pm
# once (100ns+0s) by constant::BEGIN@24 at line 34 of constant.pm | |||||
# spent 4µs within PerlIO::Layer::find which was called 3 times, avg 1µs/call:
# 3 times (4µs+0s) by open::import at line 88 of open.pm, avg 1µs/call | |||||
# spent 51µs within UNIVERSAL::VERSION which was called 12 times, avg 4µs/call:
# once (8µs+0s) by File::Temp::BEGIN@149 at line 149 of File/Temp.pm
# once (6µs+0s) by File::Temp::BEGIN@176 at line 176 of File/Temp.pm
# once (6µs+0s) by strictures::VERSION at line 99 of strictures.pm
# once (5µs+0s) by File::Temp::BEGIN@167 at line 167 of File/Temp.pm
# once (5µs+0s) by File::Temp::BEGIN@150 at line 150 of File/Temp.pm
# once (5µs+0s) by Text::CSV::BEGIN@1 at line 1 of (eval 11)[Text/CSV.pm:114]
# once (4µs+0s) by File::Temp::BEGIN@147 at line 147 of File/Temp.pm
# once (4µs+0s) by JSON::BEGIN@2 at line 2 of (eval 12)[JSON.pm:274]
# once (3µs+0s) by File::Temp::BEGIN@153 at line 24 of Scalar/Util.pm
# once (3µs+0s) by JSON::Backend::XS::init at line 25 of (eval 13)[JSON.pm:295]
# once (900ns+0s) by JSON::Backend::XS::init at line 27 of (eval 13)[JSON.pm:295]
# once (900ns+0s) by main::BEGIN@5 at line 105 of strictures.pm | |||||
# spent 12µs within UNIVERSAL::can which was called 10 times, avg 1µs/call:
# 3 times (3µs+0s) by if::work at line 16 of if.pm, avg 1µs/call
# 3 times (2µs+0s) by strictures::_enable at line 130 of strictures.pm, avg 833ns/call
# once (3µs+0s) by attributes::import at line 63 of attributes.pm
# once (2µs+0s) by main::BEGIN@30 at line 1611 of IPC/Cmd.pm
# once (1µs+0s) by Capture::Tiny::BEGIN@14 at line 16 of Capture/Tiny.pm
# once (1µs+0s) by ExtUtils::MakeMaker::BEGIN@11 at line 26 of ExtUtils/MakeMaker/version.pm | |||||
# spent 2.48s within UNIVERSAL::isa which was called 1729578 times, avg 1µs/call:
# 399108 times (1.52s+0s) by IPC::Run::harness at line 1800 of IPC/Run.pm, avg 4µs/call
# 399108 times (120ms+0s) by IPC::Run::_open_pipes at line 2152 of IPC/Run.pm, avg 302ns/call
# 266072 times (98.8ms+0s) by IPC::Run::IO::_new_internal at line 175 of IPC/Run/IO.pm, avg 371ns/call
# 133036 times (274ms+0s) by IPC::Run::_clobber at line 2960 of IPC/Run.pm, avg 2µs/call
# 133036 times (274ms+0s) by IPC::Run::_cleanup at line 3265 of IPC/Run.pm, avg 2µs/call
# 133036 times (99.0ms+0s) by IPC::Run::IO::_init_filters at line 490 of IPC/Run/IO.pm, avg 744ns/call
# 133036 times (59.6ms+0s) by IPC::Run::_spawn at line 1440 of IPC/Run.pm, avg 448ns/call
# 133036 times (37.4ms+0s) by IPC::Run::harness at line 1916 of IPC/Run.pm, avg 281ns/call
# 105 times (130µs+0s) by Text::CSV_XS::error_diag at line 687 of Text/CSV_XS.pm, avg 1µs/call
# 3 times (3µs+0s) by base::import at line 94 of base.pm, avg 1µs/call
# once (700ns+0s) by Getopt::Long::GetOptionsFromArray at line 333 of Getopt/Long.pm
# once (600ns+0s) by Getopt::Long::GetOptionsFromArray at line 475 of Getopt/Long.pm | |||||
# spent 2µs within main::CORE:pack which was called:
# once (2µs+0s) by IPC::Cmd::BEGIN@5 at line 196 of IPC/Open3.pm | |||||
# spent 13µs within main::CORE:readline which was called:
# once (13µs+0s) by main::RUNTIME at line 74 | |||||
# spent 700ns within main::__ANON__ which was called:
# once (700ns+0s) by main::BEGIN@16 at line 16 | |||||
# spent 18µs within mro::method_changed_in which was called 40 times, avg 437ns/call:
# 40 times (18µs+0s) by constant::import at line 198 of constant.pm, avg 437ns/call |