← Index
NYTProf Performance Profile   « block view • line view • sub view »
For xt/tapper-mcp-scheduler-with-db-longrun.t
  Run on Tue May 22 17:18:39 2012
Reported on Tue May 22 17:22:36 2012

Filename/2home/ss5/perl5/perlbrew/perls/perl-5.12.3/lib/site_perl/5.12.3/DBIx/Class/Componentised.pm
StatementsExecuted 873 statements in 2.98ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
42112.21ms10.0msDBIx::Class::Componentised::::inject_baseDBIx::Class::Componentised::inject_base
111618µs784µsDBIx::Class::Componentised::::BEGIN@10DBIx::Class::Componentised::BEGIN@10
11116µs21µsDBIx::Class::Componentised::::BEGIN@4DBIx::Class::Componentised::BEGIN@4
1118µs1.02msDBIx::Class::Componentised::::BEGIN@7DBIx::Class::Componentised::BEGIN@7
1118µs24µsDBIx::Class::Componentised::::BEGIN@5DBIx::Class::Componentised::BEGIN@5
1117µs16µsDBIx::Class::Componentised::::BEGIN@29DBIx::Class::Componentised::BEGIN@29
1117µs16µsDBIx::Class::Componentised::::BEGIN@8DBIx::Class::Componentised::BEGIN@8
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
4320µs226µs
# spent 21µs (16+5) within DBIx::Class::Componentised::BEGIN@4 which was called: # once (16µs+5µs) by base::import at line 4
use strict;
# spent 21µs making 1 call to DBIx::Class::Componentised::BEGIN@4 # spent 5µs making 1 call to strict::import
5320µs239µs
# spent 24µs (8+16) within DBIx::Class::Componentised::BEGIN@5 which was called: # once (8µs+16µs) by base::import at line 5
use warnings;
# spent 24µs making 1 call to DBIx::Class::Componentised::BEGIN@5 # spent 16µs making 1 call to warnings::import
6
7322µs21.02ms
# spent 1.02ms (8µs+1.01) within DBIx::Class::Componentised::BEGIN@7 which was called: # once (8µs+1.01ms) by base::import at line 7
use base 'Class::C3::Componentised';
# spent 1.02ms making 1 call to DBIx::Class::Componentised::BEGIN@7 # spent 1.01ms making 1 call to base::import, recursion: max depth 1, sum of overlapping time 1.01ms
8321µs226µs
# spent 16µs (7+9) within DBIx::Class::Componentised::BEGIN@8 which was called: # once (7µs+9µs) by base::import at line 8
use mro 'c3';
# spent 16µs making 1 call to DBIx::Class::Componentised::BEGIN@8 # spent 9µs making 1 call to mro::import
9
103122µs2888µs
# spent 784µs (618+166) within DBIx::Class::Componentised::BEGIN@10 which was called: # once (618µs+166µs) by base::import at line 10
use DBIx::Class::Carp '^DBIx::Class|^Class::C3::Componentised';
# spent 784µs making 1 call to DBIx::Class::Componentised::BEGIN@10 # spent 104µs making 1 call to DBIx::Class::Carp::import
11
12# this warns of subtle bugs introduced by UTF8Columns hacky handling of store_column
13# if and only if it is placed before something overriding store_column
14
# spent 10.0ms (2.21+7.82) within DBIx::Class::Componentised::inject_base which was called 42 times, avg 239µs/call: # 42 times (2.21ms+7.82ms) by Class::C3::Componentised::_load_components at line 95 of Class/C3/Componentised.pm, avg 239µs/call
sub inject_base {
158542.58ms my $class = shift;
16 my ($target, @complist) = @_;
17
18 # we already did load the component
1984215µs my $keep_checking = ! (
# spent 215µs making 84 calls to UNIVERSAL::isa, avg 3µs/call
20 $target->isa ('DBIx::Class::UTF8Columns')
21 ||
22 $target->isa ('DBIx::Class::ForceUTF8')
23 );
24
25 my @target_isa;
26
27 while ($keep_checking && @complist) {
28
293192µs225µs
# spent 16µs (7+9) within DBIx::Class::Componentised::BEGIN@29 which was called: # once (7µs+9µs) by base::import at line 29
@target_isa = do { no strict 'refs'; @{"$target\::ISA"} }
# spent 16µs making 1 call to DBIx::Class::Componentised::BEGIN@29 # spent 9µs making 1 call to strict::unimport
30 unless @target_isa;
31
32 my $comp = pop @complist;
33
34 # warn here on use of either component, as we have no access to ForceUTF8,
35 # the author does not respond, and the Catalyst wiki used to recommend it
36 for (qw/DBIx::Class::UTF8Columns DBIx::Class::ForceUTF8/) {
37160298µs if ($comp->isa ($_) ) {
# spent 298µs making 160 calls to UNIVERSAL::isa, avg 2µs/call
38 $keep_checking = 0; # no use to check from this point on
39 carp_once "Use of $_ is strongly discouraged. See documentation of DBIx::Class::UTF8Columns for more info\n"
40 unless $ENV{DBIC_UTF8COLUMNS_OK};
41 last;
42 }
43 }
44
45 # something unset $keep_checking - we got a unicode mangler
46 if (! $keep_checking) {
47
48 my $base_store_column = do { require DBIx::Class::Row; DBIx::Class::Row->can ('store_column') };
49
50 my @broken;
51 for my $existing_comp (@target_isa) {
52 my $sc = $existing_comp->can ('store_column')
53 or next;
54
55 if ($sc ne $base_store_column) {
56 require B;
57 my $definer = B::svref_2object($sc)->STASH->NAME;
58 push @broken, ($definer eq $existing_comp)
59 ? $existing_comp
60 : "$existing_comp (via $definer)"
61 ;
62 }
63 }
64
65 carp "Incorrect loading order of $comp by $target will affect other components overriding 'store_column' ("
66 . join (', ', @broken)
67 .'). Refer to the documentation of DBIx::Class::UTF8Columns for more info'
68 if @broken;
69 }
70
71 unshift @target_isa, $comp;
72 }
73
7442702µs $class->next::method(@_);
# spent 702µs making 42 calls to next::method, avg 17µs/call
75}
76
7718µs1242µs1;