Filename | /usr/local/lib/perl/5.14.2/Params/Validate/XS.pm |
Statements | Executed 16 statements in 445µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
477 | 6 | 5 | 6.78ms | 6.80ms | validate (xsub) | Params::Validate::XS::
424 | 2 | 1 | 1.62ms | 1.62ms | validate_pos (xsub) | Params::Validate::XS::
1 | 1 | 1 | 13µs | 19µs | BEGIN@6 | Params::Validate::XS::
1 | 1 | 1 | 12µs | 16µs | _check_regex_from_xs | Params::Validate::XS::
1 | 1 | 1 | 6µs | 11µs | BEGIN@7 | Params::Validate::XS::
1 | 1 | 1 | 4µs | 4µs | BEGIN@38 | Params::Validate::XS::
1 | 1 | 1 | 3µs | 3µs | CORE:match (opcode) | Params::Validate::XS::
1 | 1 | 1 | 800ns | 800ns | CORE:regcomp (opcode) | Params::Validate::XS::
0 | 0 | 0 | 0s | 0s | __ANON__[:12] | Params::Validate::XS::
0 | 0 | 0 | 0s | 0s | validation_options | Params::Validate::XS::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package Params::Validate::XS; | ||||
2 | { | ||||
3 | 2 | 1µs | $Params::Validate::XS::VERSION = '1.08'; | ||
4 | } | ||||
5 | |||||
6 | 2 | 27µs | 2 | 26µs | # spent 19µs (13+7) within Params::Validate::XS::BEGIN@6 which was called:
# once (13µs+7µs) by Module::Runtime::require_module at line 6 # spent 19µs making 1 call to Params::Validate::XS::BEGIN@6
# spent 7µs making 1 call to strict::import |
7 | 2 | 139µs | 2 | 16µs | # spent 11µs (6+5) within Params::Validate::XS::BEGIN@7 which was called:
# once (6µs+5µs) by Module::Runtime::require_module at line 7 # spent 11µs making 1 call to Params::Validate::XS::BEGIN@7
# spent 5µs making 1 call to warnings::import |
8 | |||||
9 | my $default_fail = sub { | ||||
10 | require Carp; | ||||
11 | Carp::confess( $_[0] ); | ||||
12 | 1 | 2µs | }; | ||
13 | |||||
14 | { | ||||
15 | 2 | 5µs | my %defaults = ( | ||
16 | ignore_case => 0, | ||||
17 | strip_leading => 0, | ||||
18 | allow_extra => 0, | ||||
19 | on_fail => $default_fail, | ||||
20 | stack_skip => 1, | ||||
21 | normalize_keys => undef, | ||||
22 | ); | ||||
23 | |||||
24 | 1 | 1µs | *set_options = \&validation_options; | ||
25 | |||||
26 | sub validation_options { | ||||
27 | my %opts = @_; | ||||
28 | |||||
29 | my $caller = caller; | ||||
30 | |||||
31 | foreach ( keys %defaults ) { | ||||
32 | $opts{$_} = $defaults{$_} unless exists $opts{$_}; | ||||
33 | } | ||||
34 | |||||
35 | $Params::Validate::OPTIONS{$caller} = \%opts; | ||||
36 | } | ||||
37 | |||||
38 | 2 | 79µs | 1 | 4µs | # spent 4µs within Params::Validate::XS::BEGIN@38 which was called:
# once (4µs+0s) by Module::Runtime::require_module at line 38 # spent 4µs making 1 call to Params::Validate::XS::BEGIN@38 |
39 | 1 | 1µs | XSLoader::load( | ||
40 | __PACKAGE__, | ||||
41 | exists $Params::Validate::XS::{VERSION} | ||||
42 | 1 | 166µs | 1 | 160µs | ? ${ $Params::Validate::XS::{VERSION} } # spent 160µs making 1 call to XSLoader::load |
43 | : (), | ||||
44 | ); | ||||
45 | } | ||||
46 | |||||
47 | # spent 16µs (12+4) within Params::Validate::XS::_check_regex_from_xs which was called:
# once (12µs+4µs) by Params::Validate::XS::validate at line 504 of DateTime.pm | ||||
48 | 1 | 16µs | 2 | 4µs | return ( defined $_[0] ? $_[0] : '' ) =~ /$_[1]/ ? 1 : 0; # spent 3µs making 1 call to Params::Validate::XS::CORE:match
# spent 800ns making 1 call to Params::Validate::XS::CORE:regcomp |
49 | } | ||||
50 | |||||
51 | 1 | 8µs | 1; | ||
# spent 3µs within Params::Validate::XS::CORE:match which was called:
# once (3µs+0s) by Params::Validate::XS::_check_regex_from_xs at line 48 | |||||
# spent 800ns within Params::Validate::XS::CORE:regcomp which was called:
# once (800ns+0s) by Params::Validate::XS::_check_regex_from_xs at line 48 | |||||
# spent 6.80ms (6.78+16µs) within Params::Validate::XS::validate which was called 477 times, avg 14µs/call:
# 466 times (6.61ms+0s) by DateTime::Locale::_register at line 41 of DateTime/Locale.pm, avg 14µs/call
# 6 times (57µs+0s) by DateTime::TimeZone::new at line 38 of DateTime/TimeZone.pm, avg 10µs/call
# 2 times (31µs+0s) by DateTime::Duration::new at line 31 of DateTime/Duration.pm, avg 16µs/call
# once (57µs+16µs) by DateTime::from_epoch at line 504 of DateTime.pm
# once (15µs+0s) by DateTime::TimeZone::_init at line 117 of DateTime/TimeZone.pm
# once (6µs+0s) by DateTime::TimeZone::OffsetOnly::new at line 19 of DateTime/TimeZone/OffsetOnly.pm | |||||
# spent 1.62ms within Params::Validate::XS::validate_pos which was called 424 times, avg 4µs/call:
# 422 times (1.61ms+0s) by DateTime::Locale::_registered_id at line 92 of DateTime/Locale.pm, avg 4µs/call
# 2 times (13µs+0s) by DateTime::Locale::load at line 182 of DateTime/Locale.pm, avg 7µs/call |