← Index
Performance Profile   « block view • line view • sub view »
For t/test-parsing
  Run on Sun Nov 14 09:49:57 2010
Reported on Sun Nov 14 09:50:09 2010

File /usr/local/lib/perl/5.10.0/Moose/Util/TypeConstraints/OptimizedConstraints.pm
Statements Executed 69019
Total Time 0.083835800000024 seconds
Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
2800042116ms116msMoose::Util::TypeConstraints::OptimizedConstraints::::StrMoose::Util::TypeConstraints::OptimizedConstraints::Str
130002244.3ms44.3msMoose::Util::TypeConstraints::OptimizedConstraints::::ArrayRefMoose::Util::TypeConstraints::OptimizedConstraints::ArrayRef
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::BEGINMoose::Util::TypeConstraints::OptimizedConstraints::BEGIN
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::ClassNameMoose::Util::TypeConstraints::OptimizedConstraints::ClassName
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::CodeRefMoose::Util::TypeConstraints::OptimizedConstraints::CodeRef
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::FileHandleMoose::Util::TypeConstraints::OptimizedConstraints::FileHandle
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::GlobRefMoose::Util::TypeConstraints::OptimizedConstraints::GlobRef
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::HashRefMoose::Util::TypeConstraints::OptimizedConstraints::HashRef
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::IntMoose::Util::TypeConstraints::OptimizedConstraints::Int
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::NumMoose::Util::TypeConstraints::OptimizedConstraints::Num
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::ObjectMoose::Util::TypeConstraints::OptimizedConstraints::Object
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::RefMoose::Util::TypeConstraints::OptimizedConstraints::Ref
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::RegexpRefMoose::Util::TypeConstraints::OptimizedConstraints::RegexpRef
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::RoleMoose::Util::TypeConstraints::OptimizedConstraints::Role
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::RoleNameMoose::Util::TypeConstraints::OptimizedConstraints::RoleName
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::ScalarRefMoose::Util::TypeConstraints::OptimizedConstraints::ScalarRef
0000s0sMoose::Util::TypeConstraints::OptimizedConstraints::::ValueMoose::Util::TypeConstraints::OptimizedConstraints::Value
LineStmts.Exclusive
Time
Avg.Code
1package Moose::Util::TypeConstraints::OptimizedConstraints;
2
3327µs9µsuse strict;
# spent 8µs making 1 call to strict::import
4328µs9µsuse warnings;
# spent 24µs making 1 call to warnings::import
5
6328µs9µsuse Class::MOP;
# spent 3µs making 1 call to import
7336µs12µsuse Moose::Deprecated;
83640µs213µsuse Scalar::Util 'blessed', 'looks_like_number';
# spent 54µs making 1 call to Exporter::import
9
101900ns900nsour $VERSION = '1.15';
11123µs23µs$VERSION = eval $VERSION;
121700ns700nsour $AUTHORITY = 'cpan:STEVAN';
13
14sub Value { defined($_[0]) && !ref($_[0]) }
15
16sub Ref { ref($_[0]) }
17
18# We need to use a temporary here to flatten LVALUEs, for instance as in
19# Str(substr($_,0,255)).
20
# spent 116ms within Moose::Util::TypeConstraints::OptimizedConstraints::Str which was called 28000 times, avg 4µs/call: # 11000 times (46.7ms+0s) by Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):21] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):28] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):25] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):16] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):63] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):43] at line 15 of /home/tamil/util/marc-moose/generated method (unknown origin), avg 4µs/call # 11000 times (42.5ms+0s) by Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):63] at line 49 of /home/tamil/util/marc-moose/generated method (unknown origin), avg 4µs/call # 5000 times (21.4ms+0s) by Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):21] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):28] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):25] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):63] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):43] at line 21 of /home/tamil/util/marc-moose/generated method (unknown origin), avg 4µs/call # 1000 times (4.91ms+0s) by Class::MOP::Method::Generated::__ANON__[accessor _leader of attribute leader defined at /home/tamil/util/marc-moose/lib/MARC/Moose/Record.pm:11] at line 10 of /home/tamil/util/marc-moose/accessor _leader of attribute leader defined at /home/tamil/util/marc-moose/lib/MARC/Moose/Record.pm, avg 5µs/call
sub Str {
215600063.7ms1µs my $value = $_[0];
22 defined($value) && ref(\$value) eq 'SCALAR'
23}
24
25sub Num { !ref($_[0]) && looks_like_number($_[0]) }
26
27# using a temporary here because regex matching promotes an IV to a PV,
28# and that confuses some things (like JSON.pm)
29sub Int {
30 my $value = $_[0];
31 defined($value) && !ref($value) && $value =~ /^-?[0-9]+$/
32}
33
34sub ScalarRef { ref($_[0]) eq 'SCALAR' || ref($_[0]) eq 'REF' }
351300019.3ms1µs
# spent 44.3ms within Moose::Util::TypeConstraints::OptimizedConstraints::ArrayRef which was called 13000 times, avg 3µs/call: # 12000 times (41.1ms+0s) by Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):63] or Class::MOP::Method::Generated::__ANON__[generated method (unknown origin):43] at line 35 of /home/tamil/util/marc-moose/generated method (unknown origin), avg 3µs/call # 1000 times (3.24ms+0s) by Class::MOP::Method::Generated::__ANON__[accessor fields defined at /home/tamil/util/marc-moose/lib/MARC/Moose/Record.pm:35] at line 27 of /home/tamil/util/marc-moose/accessor fields defined at /home/tamil/util/marc-moose/lib/MARC/Moose/Record.pm, avg 3µs/call
sub ArrayRef { ref($_[0]) eq 'ARRAY' }
36sub HashRef { ref($_[0]) eq 'HASH' }
37sub CodeRef { ref($_[0]) eq 'CODE' }
38sub RegexpRef { ref($_[0]) eq 'Regexp' }
39sub GlobRef { ref($_[0]) eq 'GLOB' }
40
41sub FileHandle { ref($_[0]) eq 'GLOB' && Scalar::Util::openhandle($_[0]) or blessed($_[0]) && $_[0]->isa("IO::Handle") }
42
43sub Object { blessed($_[0]) && blessed($_[0]) ne 'Regexp' }
44
45sub Role {
46 Moose::Deprecated::deprecated(
47 feature => 'Role type',
48 message =>
49 'The Role type has been deprecated. Maybe you meant to create a RoleName type?'
50 );
51 blessed( $_[0] ) && $_[0]->can('does');
52}
53
54sub ClassName {
55 return Class::MOP::is_class_loaded( $_[0] );
56}
57
58sub RoleName {
59 ClassName($_[0])
60 && (Class::MOP::class_of($_[0]) || return)->isa('Moose::Meta::Role')
61}
62
63# NOTE:
64# we have XS versions too, ...
65# 04:09 <@konobi> nothingmuch: konobi.co.uk/code/utilsxs.tar.gz
66# 04:09 <@konobi> or utilxs.tar.gz iirc
67
6814µs4µs1;
69
70__END__
71
72=pod
73
74=head1 NAME
75
76Moose::Util::TypeConstraints::OptimizedConstraints - Optimized constraint
77bodies for various moose types
78
79=head1 DESCRIPTION
80
81This file contains the hand optimized versions of Moose type constraints,
82no user serviceable parts inside.
83
84=head1 FUNCTIONS
85
86=over 4
87
88=item C<Value>
89
90=item C<Ref>
91
92=item C<Str>
93
94=item C<Num>
95
96=item C<Int>
97
98=item C<ScalarRef>
99
100=item C<ArrayRef>
101
102=item C<HashRef>
103
104=item C<CodeRef>
105
106=item C<RegexpRef>
107
108=item C<GlobRef>
109
110=item C<FileHandle>
111
112=item C<Object>
113
114=item C<Role>
115
116=item C<ClassName>
117
118=item C<RoleName>
119
120=back
121
122=head1 BUGS
123
124See L<Moose/BUGS> for details on reporting bugs.
125
126=head1 AUTHOR
127
128Yuval Kogman E<lt>nothingmuch@cpan.orgE<gt>
129
130=head1 COPYRIGHT AND LICENSE
131
132Copyright 2007-2009 by Infinity Interactive, Inc.
133
134L<http://www.iinteractive.com>
135
136This library is free software; you can redistribute it and/or modify
137it under the same terms as Perl itself.
138
139=cut