← 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 13:50:58 2016
Reported on Fri Jan 8 13:51:26 2016

Filename/usr/share/perl5/DBIx/Class/Componentised.pm
StatementsExecuted 155 statements in 1.44ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
4113.38ms4.04msDBIx::Class::Componentised::::inject_baseDBIx::Class::Componentised::inject_base
11116µs27µsDBIx::Class::Componentised::::BEGIN@4DBIx::Class::Componentised::BEGIN@4
11115µs193µsDBIx::Class::Componentised::::BEGIN@11DBIx::Class::Componentised::BEGIN@11
11112µs3.21msDBIx::Class::Componentised::::BEGIN@7DBIx::Class::Componentised::BEGIN@7
11110µs15µsDBIx::Class::Componentised::::BEGIN@8DBIx::Class::Componentised::BEGIN@8
1119µs15µsDBIx::Class::Componentised::::BEGIN@30DBIx::Class::Componentised::BEGIN@30
1119µs17µsDBIx::Class::Componentised::::BEGIN@5DBIx::Class::Componentised::BEGIN@5
1117µs48µ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
4242µs238µs
# spent 27µs (16+10) within DBIx::Class::Componentised::BEGIN@4 which was called: # once (16µs+10µs) by base::import at line 4
use strict;
# spent 27µs making 1 call to DBIx::Class::Componentised::BEGIN@4 # spent 10µs making 1 call to strict::import
5243µs225µs
# spent 17µs (9+8) within DBIx::Class::Componentised::BEGIN@5 which was called: # once (9µs+8µs) by base::import at line 5
use warnings;
# spent 17µs making 1 call to DBIx::Class::Componentised::BEGIN@5 # spent 8µs making 1 call to warnings::import
6
72189µs23.21ms
# spent 3.21ms (12µs+3.20) within DBIx::Class::Componentised::BEGIN@7 which was called: # once (12µs+3.20ms) by base::import at line 7
use base 'Class::C3::Componentised';
# spent 3.21ms making 1 call to DBIx::Class::Componentised::BEGIN@7 # spent 3.20ms making 1 call to base::import, recursion: max depth 3, sum of overlapping time 3.20ms
8235µs221µ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
10225µs289µs
# spent 48µs (7+41) within DBIx::Class::Componentised::BEGIN@10 which was called: # once (7µs+41µs) by base::import at line 10
use DBIx::Class::Carp '^DBIx::Class|^Class::C3::Componentised';
# spent 48µs making 1 call to DBIx::Class::Componentised::BEGIN@10 # spent 41µs making 1 call to DBIx::Class::Carp::import
112264µs2370µs
# spent 193µs (15+178) within DBIx::Class::Componentised::BEGIN@11 which was called: # once (15µs+178µs) by base::import at line 11
use namespace::clean;
# spent 193µs making 1 call to DBIx::Class::Componentised::BEGIN@11 # spent 178µ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 4.04ms (3.38+660µs) within DBIx::Class::Componentised::inject_base which was called 4 times, avg 1.01ms/call: # 4 times (3.38ms+660µs) by Class::C3::Componentised::_load_components at line 95 of Class/C3/Componentised.pm, avg 1.01ms/call
sub inject_base {
1642µs my $class = shift;
1745µs my ($target, @complist) = @_;
18
19 # we already did load the component
20470µs819µs my $keep_checking = ! (
# spent 19µ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
2641µs my @target_isa;
27
2844µs while ($keep_checking && @complist) {
29
3022444µs221µs
# spent 15µ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 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
33164µs 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
37168µs for (qw/DBIx::Class::UTF8Columns DBIx::Class::ForceUTF8/) {
3832183µs3252µ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
47162µs 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
721612µs unshift @target_isa, $comp;
73 }
74
754103µs464µs $class->next::method(@_);
# spent 64µs making 4 calls to next::method, avg 16µs/call
76}
77
7812µs1132µs1;
# spent 132µs making 1 call to B::Hooks::EndOfScope::XS::__ANON__