Filename | /usr/local/lib/perl/5.14.2/Params/Validate/XS.pm |
Statements | Executed 16 statements in 922µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
477 | 6 | 5 | 15.5ms | 15.5ms | validate (xsub) | Params::Validate::XS::
424 | 2 | 1 | 3.71ms | 3.71ms | validate_pos (xsub) | Params::Validate::XS::
1 | 1 | 1 | 27µs | 35µs | BEGIN@6 | Params::Validate::XS::
1 | 1 | 1 | 24µs | 33µs | _check_regex_from_xs | Params::Validate::XS::
1 | 1 | 1 | 15µs | 27µs | BEGIN@7 | Params::Validate::XS::
1 | 1 | 1 | 11µs | 11µs | BEGIN@38 | Params::Validate::XS::
1 | 1 | 1 | 7µs | 7µs | CORE:match (opcode) | Params::Validate::XS::
1 | 1 | 1 | 2µs | 2µs | 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 | 2µs | $Params::Validate::XS::VERSION = '1.08'; | ||
4 | } | ||||
5 | |||||
6 | 2 | 62µs | 2 | 42µs | # spent 35µs (27+7) within Params::Validate::XS::BEGIN@6 which was called:
# once (27µs+7µs) by Module::Runtime::require_module at line 6 # spent 35µs making 1 call to Params::Validate::XS::BEGIN@6
# spent 8µs making 1 call to strict::import |
7 | 2 | 316µs | 2 | 39µs | # spent 27µs (15+12) within Params::Validate::XS::BEGIN@7 which was called:
# once (15µs+12µs) by Module::Runtime::require_module at line 7 # spent 27µs making 1 call to Params::Validate::XS::BEGIN@7
# spent 12µs making 1 call to warnings::import |
8 | |||||
9 | my $default_fail = sub { | ||||
10 | require Carp; | ||||
11 | Carp::confess( $_[0] ); | ||||
12 | 1 | 5µs | }; | ||
13 | |||||
14 | { | ||||
15 | 2 | 11µ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 | 3µ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 | 174µs | 1 | 11µs | # spent 11µs within Params::Validate::XS::BEGIN@38 which was called:
# once (11µs+0s) by Module::Runtime::require_module at line 38 # spent 11µs making 1 call to Params::Validate::XS::BEGIN@38 |
39 | 1 | 3µs | XSLoader::load( | ||
40 | __PACKAGE__, | ||||
41 | exists $Params::Validate::XS::{VERSION} | ||||
42 | 1 | 291µs | 1 | 278µs | ? ${ $Params::Validate::XS::{VERSION} } # spent 278µs making 1 call to XSLoader::load |
43 | : (), | ||||
44 | ); | ||||
45 | } | ||||
46 | |||||
47 | # spent 33µs (24+9) within Params::Validate::XS::_check_regex_from_xs which was called:
# once (24µs+9µs) by Params::Validate::XS::validate at line 504 of DateTime.pm | ||||
48 | 1 | 36µs | 2 | 9µs | return ( defined $_[0] ? $_[0] : '' ) =~ /$_[1]/ ? 1 : 0; # spent 7µs making 1 call to Params::Validate::XS::CORE:match
# spent 2µs making 1 call to Params::Validate::XS::CORE:regcomp |
49 | } | ||||
50 | |||||
51 | 1 | 18µs | 1; | ||
# spent 7µs within Params::Validate::XS::CORE:match which was called:
# once (7µs+0s) by Params::Validate::XS::_check_regex_from_xs at line 48 | |||||
# spent 2µs within Params::Validate::XS::CORE:regcomp which was called:
# once (2µs+0s) by Params::Validate::XS::_check_regex_from_xs at line 48 | |||||
# spent 15.5ms (15.5+33µs) within Params::Validate::XS::validate which was called 477 times, avg 33µs/call:
# 466 times (15.1ms+0s) by DateTime::Locale::_register at line 41 of DateTime/Locale.pm, avg 32µs/call
# 6 times (130µs+0s) by DateTime::TimeZone::new at line 38 of DateTime/TimeZone.pm, avg 22µs/call
# 2 times (68µs+0s) by DateTime::Duration::new at line 31 of DateTime/Duration.pm, avg 34µs/call
# once (115µs+33µs) by DateTime::from_epoch at line 504 of DateTime.pm
# once (34µs+0s) by DateTime::TimeZone::_init at line 117 of DateTime/TimeZone.pm
# once (15µs+0s) by DateTime::TimeZone::OffsetOnly::new at line 19 of DateTime/TimeZone/OffsetOnly.pm | |||||
# spent 3.71ms within Params::Validate::XS::validate_pos which was called 424 times, avg 9µs/call:
# 422 times (3.68ms+0s) by DateTime::Locale::_registered_id at line 92 of DateTime/Locale.pm, avg 9µs/call
# 2 times (30µs+0s) by DateTime::Locale::load at line 182 of DateTime/Locale.pm, avg 15µs/call |