← 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:31:36 2016

Filename/usr/share/perl5/DBIx/Class/Componentised.pm
StatementsExecuted 155 statements in 1.60ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
411628µs1.28msDBIx::Class::Componentised::::inject_baseDBIx::Class::Componentised::inject_base
11116µs23µsDBIx::Class::Componentised::::BEGIN@4DBIx::Class::Componentised::BEGIN@4
11115µs20µsDBIx::Class::Componentised::::BEGIN@30DBIx::Class::Componentised::BEGIN@30
11112µs189µsDBIx::Class::Componentised::::BEGIN@11DBIx::Class::Componentised::BEGIN@11
1119µs14µsDBIx::Class::Componentised::::BEGIN@8DBIx::Class::Componentised::BEGIN@8
1118µs2.97msDBIx::Class::Componentised::::BEGIN@7DBIx::Class::Componentised::BEGIN@7
1118µs13µsDBIx::Class::Componentised::::BEGIN@5DBIx::Class::Componentised::BEGIN@5
1117µs49µ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
4238µs231µs
# spent 23µs (16+8) within DBIx::Class::Componentised::BEGIN@4 which was called: # once (16µs+8µs) by base::import at line 4
use strict;
# spent 23µs making 1 call to DBIx::Class::Componentised::BEGIN@4 # spent 8µs making 1 call to strict::import
5233µs218µs
# spent 13µs (8+5) within DBIx::Class::Componentised::BEGIN@5 which was called: # once (8µs+5µs) by base::import at line 5
use warnings;
# spent 13µs making 1 call to DBIx::Class::Componentised::BEGIN@5 # spent 5µs making 1 call to warnings::import
6
72192µs22.97ms
# spent 2.97ms (8µs+2.96) within DBIx::Class::Componentised::BEGIN@7 which was called: # once (8µ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
8234µs219µs
# spent 14µs (9+5) within DBIx::Class::Componentised::BEGIN@8 which was called: # once (9µs+5µs) by base::import at line 8
use mro 'c3';
# spent 14µs making 1 call to DBIx::Class::Componentised::BEGIN@8 # spent 5µs making 1 call to mro::import
9
10226µs290µs
# spent 49µ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 49µs making 1 call to DBIx::Class::Componentised::BEGIN@10 # spent 41µs making 1 call to DBIx::Class::Carp::import
112265µs2365µs
# spent 189µs (12+176) within DBIx::Class::Componentised::BEGIN@11 which was called: # once (12µs+176µs) by base::import at line 11
use namespace::clean;
# spent 189µs making 1 call to DBIx::Class::Componentised::BEGIN@11 # spent 176µ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 (628µs+649µs) within DBIx::Class::Componentised::inject_base which was called 4 times, avg 319µs/call: # 4 times (628µs+649µs) by Class::C3::Componentised::_load_components at line 95 of Class/C3/Componentised.pm, avg 319µs/call
sub inject_base {
1642µs my $class = shift;
1747µs my ($target, @complist) = @_;
18
19 # we already did load the component
20474µs820µs my $keep_checking = ! (
# spent 20µs making 8 calls to UNIVERSAL::isa, avg 3µ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
3022600µs226µs
# spent 20µs (15+5) within DBIx::Class::Componentised::BEGIN@30 which was called: # once (15µs+5µs) by base::import at line 30
@target_isa = do { no strict 'refs'; @{"$target\::ISA"} }
# spent 20µs making 1 call to DBIx::Class::Componentised::BEGIN@30 # spent 5µs making 1 call to strict::unimport
31 unless @target_isa;
32
33165µ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
371610µs for (qw/DBIx::Class::UTF8Columns DBIx::Class::ForceUTF8/) {
3832187µs3251µs if ($comp->isa ($_) ) {
# spent 51µ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
47163µ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
754105µs467µs $class->next::method(@_);
# spent 67µs making 4 calls to next::method, avg 17µs/call
76}
77
7812µs1114µs1;
# spent 114µs making 1 call to B::Hooks::EndOfScope::XS::__ANON__