← 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:16:49 2016
Reported on Fri Jan 8 14:23:07 2016

Filename/usr/share/perl5/DBIx/Class/Componentised.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
4113.16ms3.79msDBIx::Class::Componentised::::inject_baseDBIx::Class::Componentised::inject_base
11118µs30µsDBIx::Class::Componentised::::BEGIN@4DBIx::Class::Componentised::BEGIN@4
11116µs208µsDBIx::Class::Componentised::::BEGIN@11DBIx::Class::Componentised::BEGIN@11
11111µs2.97msDBIx::Class::Componentised::::BEGIN@7DBIx::Class::Componentised::BEGIN@7
11110µs15µsDBIx::Class::Componentised::::BEGIN@8DBIx::Class::Componentised::BEGIN@8
1119µs19µsDBIx::Class::Componentised::::BEGIN@5DBIx::Class::Componentised::BEGIN@5
1119µs14µsDBIx::Class::Componentised::::BEGIN@30DBIx::Class::Componentised::BEGIN@30
1118µs50µ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
4241µs
# spent 30µs (18+11) within DBIx::Class::Componentised::BEGIN@4 which was called: # once (18µs+11µs) by base::import at line 4
use strict;
# spent 30µs making 1 call to DBIx::Class::Componentised::BEGIN@4 # spent 11µs making 1 call to strict::import
5228µs
# spent 19µs (9+10) within DBIx::Class::Componentised::BEGIN@5 which was called: # once (9µs+10µs) by base::import at line 5
use warnings;
# spent 19µs making 1 call to DBIx::Class::Componentised::BEGIN@5 # spent 10µs making 1 call to warnings::import
6
722.97ms
# spent 2.97ms (11µs+2.96) within DBIx::Class::Componentised::BEGIN@7 which was called: # once (11µs+2.96ms) by base::import at line 7
use base 'Class::C3::Componentised';
# spent 2.97ms making 1 call to DBIx::Class::Componentised::BEGIN@7 # spent 2.96ms making 1 call to base::import, recursion: max depth 3, sum of overlapping time 2.96ms
8220µs
# spent 15µs (10+5) within DBIx::Class::Componentised::BEGIN@8 which was called: # once (10µs+5µs) by base::import at line 8
use mro 'c3';
# spent 15µs making 1 call to DBIx::Class::Componentised::BEGIN@8 # spent 5µs making 1 call to mro::import
9
10291µs
# spent 50µs (8+42) within DBIx::Class::Componentised::BEGIN@10 which was called: # once (8µs+42µs) by base::import at line 10
use DBIx::Class::Carp '^DBIx::Class|^Class::C3::Componentised';
# spent 50µs making 1 call to DBIx::Class::Componentised::BEGIN@10 # spent 42µs making 1 call to DBIx::Class::Carp::import
112401µs
# spent 208µs (16+193) within DBIx::Class::Componentised::BEGIN@11 which was called: # once (16µs+193µs) by base::import at line 11
use namespace::clean;
# spent 208µs making 1 call to DBIx::Class::Componentised::BEGIN@11 # spent 193µ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 3.79ms (3.16+629µs) within DBIx::Class::Componentised::inject_base which was called 4 times, avg 947µs/call: # 4 times (3.16ms+629µs) by Class::C3::Componentised::_load_components at line 95 of Class/C3/Componentised.pm, avg 947µs/call
sub inject_base {
16 my $class = shift;
17 my ($target, @complist) = @_;
18
19 # we already did load the component
20820µs my $keep_checking = ! (
# spent 20µ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
30220µs
# spent 14µs (9+6) within DBIx::Class::Componentised::BEGIN@30 which was called: # once (9µs+6µs) by base::import at line 30
@target_isa = do { no strict 'refs'; @{"$target\::ISA"} }
# spent 14µ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/) {
383252µs if ($comp->isa ($_) ) {
# spent 52µ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__