Filename | /usr/lib/perl5/NetAddr/IP/InetBase.pm |
Statements | Executed 430540 statements in 994ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
47822 | 1 | 1 | 350ms | 401ms | fillIPv4 | NetAddr::IP::InetBase::
47822 | 3 | 1 | 316ms | 946ms | inet_aton | NetAddr::IP::InetBase::
47822 | 1 | 1 | 229ms | 229ms | CORE:ghbyname (opcode) | NetAddr::IP::InetBase::
47844 | 7 | 1 | 51.8ms | 51.8ms | CORE:match (opcode) | NetAddr::IP::InetBase::
1 | 1 | 1 | 1.17ms | 1.41ms | BEGIN@9 | NetAddr::IP::InetBase::
3 | 2 | 2 | 126µs | 158µs | ipv6_aton | NetAddr::IP::InetBase::
2 | 2 | 2 | 26µs | 352µs | import | NetAddr::IP::InetBase::
3 | 3 | 2 | 23µs | 584µs | inet_any2n | NetAddr::IP::InetBase::
16 | 2 | 1 | 16µs | 16µs | CORE:subst (opcode) | NetAddr::IP::InetBase::
1 | 1 | 1 | 10µs | 42µs | BEGIN@125 | NetAddr::IP::InetBase::
1 | 1 | 1 | 10µs | 22µs | BEGIN@4 | NetAddr::IP::InetBase::
1 | 1 | 1 | 9µs | 17µs | BEGIN@71 | NetAddr::IP::InetBase::
1 | 1 | 1 | 7µs | 65µs | BEGIN@8 | NetAddr::IP::InetBase::
1 | 1 | 1 | 6µs | 6µs | BEGIN@124 | NetAddr::IP::InetBase::
1 | 1 | 1 | 6µs | 6µs | upper | NetAddr::IP::InetBase::
3 | 1 | 1 | 3µs | 3µs | CORE:pack (opcode) | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | DESTROY | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | __ANON__[:109] | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | fake_AF_INET6 | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | ipv6_n2d | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | ipv6_n2x | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | isAnyIPv4 | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | isIPv4 | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | isNewIPv4 | NetAddr::IP::InetBase::
0 | 0 | 0 | 0s | 0s | lower | NetAddr::IP::InetBase::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | |||||
- - | |||||
4 | 2 | 29µs | 2 | 33µs | # spent 22µs (10+11) within NetAddr::IP::InetBase::BEGIN@4 which was called:
# once (10µs+11µs) by NetAddr::IP::Lite::BEGIN@9 at line 4 # spent 22µs making 1 call to NetAddr::IP::InetBase::BEGIN@4
# spent 11µs making 1 call to strict::import |
- - | |||||
8 | 2 | 34µs | 2 | 124µs | # spent 65µs (7+59) within NetAddr::IP::InetBase::BEGIN@8 which was called:
# once (7µs+59µs) by NetAddr::IP::Lite::BEGIN@9 at line 8 # spent 65µs making 1 call to NetAddr::IP::InetBase::BEGIN@8
# spent 59µs making 1 call to vars::import |
9 | 2 | 234µs | 2 | 1.54ms | # spent 1.41ms (1.17+231µs) within NetAddr::IP::InetBase::BEGIN@9 which was called:
# once (1.17ms+231µs) by NetAddr::IP::Lite::BEGIN@9 at line 9 # spent 1.41ms making 1 call to NetAddr::IP::InetBase::BEGIN@9
# spent 135µs making 1 call to AutoLoader::import |
10 | 1 | 600ns | |||
- - | |||||
12 | 1 | 7µs | |||
- - | |||||
14 | 3 | 15µs | 1 | 4µs | # spent 4µs making 1 call to NetAddr::IP::InetBase::CORE:match |
- - | |||||
16 | 1 | 2µs | |||
- - | |||||
38 | 1 | 6µs | |||
- - | |||||
69 | 1 | 300ns | |||
- - | |||||
71 | 3 | 275µs | 2 | 26µs | # spent 17µs (9+8) within NetAddr::IP::InetBase::BEGIN@71 which was called:
# once (9µs+8µs) by NetAddr::IP::Lite::BEGIN@9 at line 71 # spent 17µs making 1 call to NetAddr::IP::InetBase::BEGIN@71
# spent 8µs making 1 call to warnings::unimport |
- - | |||||
73 | 1 | 1µs | |||
- - | |||||
77 | 1 | 84µs | |||
- - | |||||
79 | 1 | 1µs | |||
- - | |||||
81 | 2 | 5µs | 1 | 414µs | # spent 414µs making 1 call to AutoLoader::AUTOLOAD |
- - | |||||
85 | 2 | 94µs | |||
86 | 1 | 4µs | 1 | 170µs | # spent 170µs making 1 call to Exporter::import |
- - | |||||
90 | 1 | 2µs | |||
- - | |||||
93 | 1 | 400ns | |||
- - | |||||
109 | |||||
- - | |||||
119 | |||||
- - | |||||
124 | # spent 6µs within NetAddr::IP::InetBase::BEGIN@124 which was called:
# once (6µs+0s) by NetAddr::IP::Lite::BEGIN@9 at line 128 | ||||
125 | 2 | 59µs | 2 | 73µs | # spent 42µs (10+31) within NetAddr::IP::InetBase::BEGIN@125 which was called:
# once (10µs+31µs) by NetAddr::IP::Lite::BEGIN@9 at line 125 # spent 42µs making 1 call to NetAddr::IP::InetBase::BEGIN@125
# spent 31µs making 1 call to vars::import |
126 | 1 | 600ns | |||
127 | 1 | 6µs | |||
128 | 1 | 740µs | 1 | 6µs | # spent 6µs making 1 call to NetAddr::IP::InetBase::BEGIN@124 |
- - | |||||
130 | 1 | 200ns | |||
- - | |||||
132 | 3 | 12µs | # spent 6µs within NetAddr::IP::InetBase::upper which was called:
# once (6µs+0s) by NetAddr::IP::InetBase::import at line 274 | ||
133 | |||||
- - | |||||
135 | |||||
- - | |||||
141 | |||||
- - | |||||
167 | # spent 401ms (350+51.8) within NetAddr::IP::InetBase::fillIPv4 which was called 47822 times, avg 8µs/call:
# 47822 times (350ms+51.8ms) by NetAddr::IP::InetBase::inet_aton at line 206, avg 8µs/call | ||||
168 | 47822 | 12.6ms | |||
169 | 47822 | 6.05ms | |||
170 | 47822 | 153ms | 47822 | 51.8ms | # spent 51.8ms making 47822 calls to NetAddr::IP::InetBase::CORE:match, avg 1µs/call |
171 | 47822 | 39.2ms | |||
- - | |||||
173 | 47822 | 91.5ms | |||
- - | |||||
177 | 47822 | 54.0ms | |||
- - | |||||
202 | 47822 | 115ms | |||
- - | |||||
205 | # spent 946ms (316+630) within NetAddr::IP::InetBase::inet_aton which was called 47822 times, avg 20µs/call:
# 47820 times (316ms+630ms) by NetAddr::IP::Lite::_xnew at line 1042 of NetAddr/IP/Lite.pm, avg 20µs/call
# once (12µs+52µs) by NetAddr::IP::BEGIN@8 at line 648 of NetAddr/IP/Lite.pm
# once (5µs+16µs) by NetAddr::IP::BEGIN@8 at line 651 of NetAddr/IP/Lite.pm | ||||
206 | 47822 | 55.4ms | 47822 | 401ms | # spent 401ms making 47822 calls to NetAddr::IP::InetBase::fillIPv4, avg 8µs/call |
207 | 47822 | 465ms | 47822 | 229ms | # spent 229ms making 47822 calls to NetAddr::IP::InetBase::CORE:ghbyname, avg 5µs/call |
- - | |||||
244 | 1 | 300ns | 1 | 11µs | # spent 11µs making 1 call to main::CORE:pack |
245 | 1 | 200ns | 1 | 900ns | # spent 900ns making 1 call to main::CORE:pack |
- - | |||||
247 | |||||
- - | |||||
256 | 1 | 200ns | 1 | 2µs | # spent 2µs making 1 call to main::CORE:pack |
- - | |||||
258 | |||||
- - | |||||
263 | |||||
- - | |||||
270 | |||||
- - | |||||
272 | # spent 352µs (26+325) within NetAddr::IP::InetBase::import which was called 2 times, avg 176µs/call:
# once (16µs+182µs) by NetAddr::IP::Util::BEGIN@11 at line 11 of NetAddr/IP/Util.pm
# once (10µs+144µs) by NetAddr::IP::Lite::BEGIN@9 at line 9 of NetAddr/IP/Lite.pm | ||||
273 | 2 | 3µs | |||
274 | 1 | 900ns | 1 | 6µs | # spent 6µs making 1 call to NetAddr::IP::InetBase::upper |
275 | 1 | 2µs | |||
- - | |||||
277 | 2 | 10µs | 2 | 27µs | # spent 27µs making 2 calls to Exporter::export_to_level, avg 14µs/call |
- - | |||||
280 | 1 | 20µs | |||
- - | |||||
406 | # spent 158µs (126+32) within NetAddr::IP::InetBase::ipv6_aton which was called 3 times, avg 53µs/call:
# 2 times (70µs+18µs) by NetAddr::IP::InetBase::inet_any2n at line 490, avg 44µs/call
# once (56µs+14µs) by NetAddr::IP::InetBase::inet_any2n at line 24 of AutoLoader.pm | ||||
407 | 3 | 1µs | my($ipv6) = @_; | ||
408 | 3 | 300ns | return undef unless $ipv6; | ||
409 | 3 | 7µs | local($1,$2,$3,$4,$5); | ||
410 | 3 | 13µs | 3 | 6µs | if ($ipv6 =~ /^(.*:)(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) { # mixed hex, dot-quad # spent 6µs making 3 calls to NetAddr::IP::InetBase::CORE:match, avg 2µs/call |
411 | 2 | 4µs | return undef if $2 > 255 || $3 > 255 || $4 > 255 || $5 > 255; | ||
412 | 2 | 6µs | $ipv6 = sprintf("%s%X%02X:%X%02X",$1,$2,$3,$4,$5); # convert to pure hex | ||
413 | } | ||||
414 | 3 | 300ns | my $c; | ||
415 | return undef if | ||||
416 | 3 | 27µs | 12 | 9µs | $ipv6 =~ /[^:0-9a-fA-F]/ || # non-hex character # spent 5µs making 9 calls to NetAddr::IP::InetBase::CORE:match, avg 567ns/call
# spent 4µs making 3 calls to NetAddr::IP::InetBase::CORE:subst, avg 1µs/call |
417 | (($c = $ipv6) =~ s/::/x/ && $c =~ /(?:x|:):/) || # double :: ::? | ||||
418 | $ipv6 =~ /[0-9a-fA-F]{5,}/; # more than 4 digits | ||||
419 | 3 | 6µs | $c = $ipv6 =~ tr/:/:/; # count the colons | ||
420 | 3 | 10µs | 3 | 1µs | return undef if $c < 7 && $ipv6 !~ /::/; # spent 1µs making 3 calls to NetAddr::IP::InetBase::CORE:match, avg 367ns/call |
421 | 3 | 500ns | if ($c > 7) { # strip leading or trailing :: | ||
422 | return undef unless | ||||
423 | $ipv6 =~ s/^::/:/ || | ||||
424 | $ipv6 =~ s/::$/:/; | ||||
425 | return undef if --$c > 7; | ||||
426 | } | ||||
427 | 3 | 2µs | while ($c++ < 7) { # expand compressed fields | ||
428 | 13 | 35µs | 13 | 12µs | $ipv6 =~ s/::/:::/; # spent 12µs making 13 calls to NetAddr::IP::InetBase::CORE:subst, avg 954ns/call |
429 | } | ||||
430 | 3 | 6µs | 3 | 900ns | $ipv6 .= 0 if $ipv6 =~ /:$/; # spent 900ns making 3 calls to NetAddr::IP::InetBase::CORE:match, avg 300ns/call |
431 | 3 | 8µs | my @hex = split(/:/,$ipv6); | ||
432 | 3 | 3µs | foreach(0..$#hex) { | ||
433 | 24 | 11µs | $hex[$_] = hex($hex[$_] || 0); | ||
434 | } | ||||
435 | 3 | 24µs | 3 | 3µs | pack("n8",@hex); # spent 3µs making 3 calls to NetAddr::IP::InetBase::CORE:pack, avg 933ns/call |
436 | } | ||||
437 | |||||
438 | # end of NetAddr::IP::InetBase::ipv6_aton | ||||
439 | 1 | 2µs | 1; | ||
440 | |||||
- - | |||||
485 | # spent 584µs (23+561) within NetAddr::IP::InetBase::inet_any2n which was called 3 times, avg 195µs/call:
# once (11µs+471µs) by NetAddr::IP::BEGIN@8 at line 24 of AutoLoader.pm
# once (8µs+50µs) by NetAddr::IP::BEGIN@8 at line 650 of NetAddr/IP/Lite.pm
# once (4µs+40µs) by NetAddr::IP::BEGIN@8 at line 653 of NetAddr/IP/Lite.pm | ||||
486 | 3 | 2µs | my($addr) = @_; | ||
487 | 3 | 400ns | $addr = '' unless $addr; | ||
488 | 3 | 9µs | 3 | 2µs | $addr = '::' . $addr # spent 2µs making 3 calls to NetAddr::IP::InetBase::CORE:match, avg 633ns/call |
489 | unless $addr =~ /:/; | ||||
490 | 3 | 13µs | 3 | 489µs | return ipv6_aton($addr); # spent 401µs making 1 call to AutoLoader::AUTOLOAD
# spent 88µs making 2 calls to NetAddr::IP::InetBase::ipv6_aton, avg 44µs/call |
491 | } | ||||
492 | |||||
493 | # end of NetAddr::IP::InetBase::inet_any2n | ||||
494 | 1 | 2µs | 1; | ||
# spent 229ms within NetAddr::IP::InetBase::CORE:ghbyname which was called 47822 times, avg 5µs/call:
# 47822 times (229ms+0s) by NetAddr::IP::InetBase::inet_aton at line 207, avg 5µs/call | |||||
# spent 51.8ms within NetAddr::IP::InetBase::CORE:match which was called 47844 times, avg 1µs/call:
# 47822 times (51.8ms+0s) by NetAddr::IP::InetBase::fillIPv4 at line 170, avg 1µs/call
# 9 times (5µs+0s) by NetAddr::IP::InetBase::ipv6_aton at line 416, avg 567ns/call
# 3 times (6µs+0s) by NetAddr::IP::InetBase::ipv6_aton at line 410, avg 2µs/call
# 3 times (2µs+0s) by NetAddr::IP::InetBase::inet_any2n at line 488, avg 633ns/call
# 3 times (1µs+0s) by NetAddr::IP::InetBase::ipv6_aton at line 420, avg 367ns/call
# 3 times (900ns+0s) by NetAddr::IP::InetBase::ipv6_aton at line 430, avg 300ns/call
# once (4µs+0s) by NetAddr::IP::Lite::BEGIN@9 at line 14 | |||||
# spent 3µs within NetAddr::IP::InetBase::CORE:pack which was called 3 times, avg 933ns/call:
# 3 times (3µs+0s) by NetAddr::IP::InetBase::ipv6_aton at line 435, avg 933ns/call | |||||
sub NetAddr::IP::InetBase::CORE:subst; # opcode |