← Index
NYTProf Performance Profile   « line view »
For starman worker -M FindBin --max-requests 50 --workers 2 --user=kohadev-koha --group kohadev-koha --pid /var/run/koha/kohadev/plack.pid --daemonize --access-log /var/log/koha/kohadev/plack.log --error-log /var/log/koha/kohadev/plack-error.log -E deployment --socket /var/run/koha/kohadev/plack.sock /etc/koha/sites/kohadev/plack.psgi
  Run on Fri Jan 8 14:31:06 2016
Reported on Fri Jan 8 14:33:27 2016

Filename/usr/share/perl5/DBIx/Class/Componentised.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
411650µs1.28msDBIx::Class::Componentised::::inject_baseDBIx::Class::Componentised::inject_base
11134µs48µsDBIx::Class::Componentised::::BEGIN@4DBIx::Class::Componentised::BEGIN@4
11114µs191µsDBIx::Class::Componentised::::BEGIN@11DBIx::Class::Componentised::BEGIN@11
11112µs6.91msDBIx::Class::Componentised::::BEGIN@7DBIx::Class::Componentised::BEGIN@7
11110µs20µsDBIx::Class::Componentised::::BEGIN@5DBIx::Class::Componentised::BEGIN@5
11110µs15µsDBIx::Class::Componentised::::BEGIN@8DBIx::Class::Componentised::BEGIN@8
11110µs15µsDBIx::Class::Componentised::::BEGIN@30DBIx::Class::Componentised::BEGIN@30
1119µs51µsDBIx::Class::Componentised::::BEGIN@10DBIx::Class::Componentised::BEGIN@10
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package # hide from PAUSE
2 DBIx::Class::Componentised;
3
4261µs
# spent 48µs (34+13) within DBIx::Class::Componentised::BEGIN@4 which was called: # once (34µs+13µs) by base::import at line 4
use strict;
# spent 48µs making 1 call to DBIx::Class::Componentised::BEGIN@4 # spent 13µs making 1 call to strict::import
5230µs
# spent 20µs (10+10) within DBIx::Class::Componentised::BEGIN@5 which was called: # once (10µs+10µs) by base::import at line 5
use warnings;
# spent 20µs making 1 call to DBIx::Class::Componentised::BEGIN@5 # spent 10µs making 1 call to warnings::import
6
726.91ms
# spent 6.91ms (12µs+6.90) within DBIx::Class::Componentised::BEGIN@7 which was called: # once (12µs+6.90ms) by base::import at line 7
use base 'Class::C3::Componentised';
# spent 6.91ms making 1 call to DBIx::Class::Componentised::BEGIN@7 # spent 6.90ms making 1 call to base::import, recursion: max depth 3, sum of overlapping time 6.90ms
8221µs
# spent 15µs (10+6) within DBIx::Class::Componentised::BEGIN@8 which was called: # once (10µs+6µs) by base::import at line 8
use mro 'c3';
# spent 15µs making 1 call to DBIx::Class::Componentised::BEGIN@8 # spent 6µs making 1 call to mro::import
9
10293µs
# spent 51µs (9+42) within DBIx::Class::Componentised::BEGIN@10 which was called: # once (9µs+42µs) by base::import at line 10
use DBIx::Class::Carp '^DBIx::Class|^Class::C3::Componentised';
# spent 51µs making 1 call to DBIx::Class::Componentised::BEGIN@10 # spent 42µs making 1 call to DBIx::Class::Carp::import
112368µs
# spent 191µs (14+177) within DBIx::Class::Componentised::BEGIN@11 which was called: # once (14µs+177µs) by base::import at line 11
use namespace::clean;
# spent 191µs making 1 call to DBIx::Class::Componentised::BEGIN@11 # spent 177µs making 1 call to namespace::clean::import
12
13# this warns of subtle bugs introduced by UTF8Columns hacky handling of store_column
14# if and only if it is placed before something overriding store_column
15
# spent 1.28ms (650µs+632µs) within DBIx::Class::Componentised::inject_base which was called 4 times, avg 321µs/call: # 4 times (650µs+632µs) by Class::C3::Componentised::_load_components at line 95 of Class/C3/Componentised.pm, avg 321µs/call
sub inject_base {
16 my $class = shift;
17 my ($target, @complist) = @_;
18
19 # we already did load the component
20818µs my $keep_checking = ! (
# spent 18µs making 8 calls to UNIVERSAL::isa, avg 2µs/call
21 $target->isa ('DBIx::Class::UTF8Columns')
22 ||
23 $target->isa ('DBIx::Class::ForceUTF8')
24 );
25
26 my @target_isa;
27
28 while ($keep_checking && @complist) {
29
30221µs
# spent 15µs (10+6) within DBIx::Class::Componentised::BEGIN@30 which was called: # once (10µs+6µs) by base::import at line 30
@target_isa = do { no strict 'refs'; @{"$target\::ISA"} }
# spent 15µs making 1 call to DBIx::Class::Componentised::BEGIN@30 # spent 6µs making 1 call to strict::unimport
31 unless @target_isa;
32
33 my $comp = pop @complist;
34
35 # warn here on use of either component, as we have no access to ForceUTF8,
36 # the author does not respond, and the Catalyst wiki used to recommend it
37 for (qw/DBIx::Class::UTF8Columns DBIx::Class::ForceUTF8/) {
383250µs if ($comp->isa ($_) ) {
# spent 50µs making 32 calls to UNIVERSAL::isa, avg 2µs/call
39 $keep_checking = 0; # no use to check from this point on
40 carp_once "Use of $_ is strongly discouraged. See documentation of DBIx::Class::UTF8Columns for more info\n"
41 unless $ENV{DBIC_UTF8COLUMNS_OK};
42 last;
43 }
44 }
45
46 # something unset $keep_checking - we got a unicode mangler
47 if (! $keep_checking) {
48
49 my $base_store_column = do { require DBIx::Class::Row; DBIx::Class::Row->can ('store_column') };
50
51 my @broken;
52 for my $existing_comp (@target_isa) {
53 my $sc = $existing_comp->can ('store_column')
54 or next;
55
56 if ($sc ne $base_store_column) {
57 require B;
58 my $definer = B::svref_2object($sc)->STASH->NAME;
59 push @broken, ($definer eq $existing_comp)
60 ? $existing_comp
61 : "$existing_comp (via $definer)"
62 ;
63 }
64 }
65
66 carp "Incorrect loading order of $comp by $target will affect other components overriding 'store_column' ("
67 . join (', ', @broken)
68 .'). Refer to the documentation of DBIx::Class::UTF8Columns for more info'
69 if @broken;
70 }
71
72 unshift @target_isa, $comp;
73 }
74
75467µs $class->next::method(@_);
# spent 67µs making 4 calls to next::method, avg 17µs/call
76}
77
781109µs1;
# spent 109µs making 1 call to B::Hooks::EndOfScope::XS::__ANON__