Profile of mro.pm

← 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:23:23 2012

Filename | /2home/ss5/perl5/perlbrew/perls/perl-5.12.3/lib/5.12.3/x86_64-linux/mro.pm
Statements | Executed 165429 statements in 773ms

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
82706 | 24 | 13 | 347ms | 583ms | next::::method next::method
82706 | 1 | 1 | 237ms | 237ms | mro::::_nextcan mro::_nextcan (xsub)
17962 | 3 | 2 | 45.9ms | 45.9ms | mro::::get_pkg_gen mro::get_pkg_gen (xsub)
456 | 5 | 5 | 1.07ms | 1.07ms | mro::::get_linear_isa mro::get_linear_isa (xsub)
59 | 4 | 4 | 184µs | 184µs | mro::::set_mro mro::set_mro (xsub)
68 | 1 | 1 | 113µs | 113µs | mro::::method_changed_in mro::method_changed_in (xsub)
17 | 1 | 1 | 74µs | 74µs | mro::::get_mro mro::get_mro (xsub)
7 | 7 | 7 | 50µs | 69µs | mro::::import mro::import
1 | 1 | 1 | 10µs | 12µs | mro::::BEGIN@10 mro::BEGIN@10
1 | 1 | 1 | 6µs | 13µs | mro::::BEGIN@11 mro::BEGIN@11
0 | 0 | 0 | 0s | 0s | maybe::next::::methodmaybe::next::method
0 | 0 | 0 | 0s | 0s | next::::can next::can

Call graph for these subroutines as a Graphviz dot language file.

Line | State ments | Time on line | Calls | Time in subs | Code
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | # mro.pm
2 |  |  |  |  | #
3 |  |  |  |  | # Copyright (c) 2007 Brandon L Black
4 |  |  |  |  | # Copyright (c) 2008,2009 Larry Wall and others
5 |  |  |  |  | #
6 |  |  |  |  | # You may distribute under the terms of either the GNU General Public
7 |  |  |  |  | # License or the Artistic License, as specified in the README file.
8 |  |  |  |  | #
9 |  |  |  |  | package mro;
10 | 3 | 16µs | 2 | 14µs | # spent 12µs (10+2) within mro::BEGIN@10 which was called: # once (10µs+2µs) by Class::C3::BEGIN@12 at line 10 use strict; # spent 12µs making 1 call to mro::BEGIN@10 # spent 2µs making 1 call to strict::import
11 | 3 | 126µs | 2 | 21µs | # spent 13µs (6+8) within mro::BEGIN@11 which was called: # once (6µs+8µs) by Class::C3::BEGIN@12 at line 11 use warnings; # spent 13µs making 1 call to mro::BEGIN@11 # spent 8µs making 1 call to warnings::import
12 |  |  |  |  |
13 |  |  |  |  | # mro.pm versions < 1.00 reserved for MRO::Compat
14 |  |  |  |  | # for partial back-compat to 5.[68].x
15 | 1 | 500ns |  |  | our $VERSION = '1.02';
16 |  |  |  |  |
17 |  |  |  |  | # spent 69µs (50+18) within mro::import which was called 7 times, avg 10µs/call: # once (8µs+3µs) by DBIx::Class::SQLMaker::BEGIN@43 at line 43 of DBIx/Class/SQLMaker.pm # once (8µs+3µs) by DBIx::Class::BEGIN@66 at line 66 of DBIx/Class.pm # once (7µs+3µs) by DBIx::Class::Storage::DBI::SQLite::BEGIN@7 at line 7 of DBIx/Class/Storage/DBI/SQLite.pm # once (7µs+2µs) by DBIx::Class::Storage::DBIHacks::BEGIN@14 at line 14 of DBIx/Class/Storage/DBIHacks.pm # once (7µs+2µs) by DBIx::Class::Storage::BEGIN@7 at line 7 of DBIx/Class/Storage.pm # once (7µs+2µs) by DBIx::Class::Componentised::BEGIN@8 at line 8 of DBIx/Class/Componentised.pm # once (7µs+2µs) by DBIx::Class::Storage::DBI::BEGIN@8 at line 8 of DBIx/Class/Storage/DBI.pm sub import {
18 | 7 | 80µs | 7 | 18µs | mro::set_mro(scalar(caller), $_[1]) if $_[1]; # spent 18µs making 7 calls to mro::set_mro, avg 3µs/call
19 |  |  |  |  | }
20 |  |  |  |  |
21 |  |  |  |  | package # hide me from PAUSE
22 |  |  |  |  | next;
23 |  |  |  |  |
24 |  |  |  |  | sub can { mro::_nextcan($_[0], 0) }
25 |  |  |  |  |
26 |  |  |  |  | # spent 583ms (347+237) within next::method which was called 82706 times, avg 7µs/call: # 63788 times (256ms+166ms) by DBIx::Class::SQLMaker::_quote at line 98 of DBIx/Class/SQLMaker.pm, avg 7µs/call # 8019 times (34.7ms+29.3ms) by DBIx::Class::Storage::DBI::SQLite::_dbi_attrs_for_bind at line 111 of DBIx/Class/Storage/DBI/SQLite.pm, avg 8µs/call # 6701 times (25.9ms+18.9ms) by DBIx::Class::SQLMaker::select at line 216 of DBIx/Class/SQLMaker.pm, avg 7µs/call # 1313 times (8.56ms+6.28ms) by DBIx::Class::SQLMaker::_table at line 386 of DBIx/Class/SQLMaker.pm, avg 11µs/call # 730 times (7.69ms+5.59ms) by DBIx::Class::Relationship::CascadeActions::update at line 74 of DBIx/Class/Relationship/CascadeActions.pm, avg 18µs/call # 629 times (1.98ms+1.46ms) by DBIx::Class::SQLMaker::_order_by at line 364 of DBIx/Class/SQLMaker.pm, avg 5µs/call # 449 times (5.64ms+3.54ms) by DBIx::Class::SQLMaker::insert at line 268 of DBIx/Class/SQLMaker.pm, avg 20µs/call # 294 times (2.61ms+1.88ms) by DBIx::Class::Storage::DBI::txn_begin at line 1325 of DBIx/Class/Storage/DBI.pm, avg 15µs/call # 294 times (1.52ms+1.31ms) by DBIx::Class::Storage::DBI::txn_commit at line 1357 of DBIx/Class/Storage/DBI.pm, avg 10µs/call # 147 times (949µs+745µs) by DBIx::Class::Relationship::CascadeActions::update at line 57 of DBIx/Class/Relationship/CascadeActions.pm, avg 12µs/call # 119 times (372µs+491µs) by DBIx::Class::InflateColumn::DateTime::register_column at line 113 of DBIx/Class/InflateColumn/DateTime.pm, avg 7µs/call # 60 times (226µs+279µs) by DBIx::Class::Relationship::Accessor::register_relationship at line 18 of DBIx/Class/Relationship/Accessor.pm, avg 8µs/call # 60 times (168µs+216µs) by DBIx::Class::Relationship::ProxyMethods::register_relationship at line 19 of DBIx/Class/Relationship/ProxyMethods.pm, avg 6µs/call # 42 times (249µs+453µs) by DBIx::Class::Componentised::inject_base at line 74 of DBIx/Class/Componentised.pm, avg 17µs/call # 20 times (63µs+117µs) by DBIx::Class::InflateColumn::Object::Enum::register_column at line 80 of DBIx/Class/InflateColumn/Object/Enum.pm, avg 9µs/call # 8 times (35µs+24µs) by DBIx::Class::ResultSource::View::new at line 166 of DBIx/Class/ResultSource/View.pm, avg 7µs/call # 6 times (27µs+23µs) by DBIx::Class::Storage::DBI::new at line 168 of DBIx/Class/Storage/DBI.pm, avg 8µs/call # 5 times (44µs+46µs) by DBIx::Class::SQLMaker::new at line 105 of DBIx/Class/SQLMaker.pm, avg 18µs/call # 5 times (36µs+30µs) by DBIx::Class::SQLMaker::select at line 195 of DBIx/Class/SQLMaker.pm, avg 13µs/call # 4 times (13µs+57µs) by DBIx::Class::DynamicDefault::add_columns at line 59 of DBIx/Class/DynamicDefault.pm, avg 18µs/call # 4 times (28µs+22µs) by DBIx::Class::Storage::DBI::SQLite::deployment_statements at line 90 of DBIx/Class/Storage/DBI/SQLite.pm, avg 13µs/call # 4 times (19µs+21µs) by DBIx::Class::TimeStamp::add_columns at line 68 of DBIx/Class/TimeStamp.pm, avg 10µs/call # 3 times (19µs+15µs) by DBIx::Class::Schema::Versioned::connection at line 583 of DBIx/Class/Schema/Versioned.pm, avg 11µs/call # 2 times (8µs+9µs) by DBIx::Class::Schema::Versioned::deploy at line 272 of DBIx/Class/Schema/Versioned.pm, avg 8µs/call sub method {
27 | 82706 | 450ms | 82706 | 237ms | my $method = mro::_nextcan($_[0], 1); # spent 237ms making 82706 calls to mro::_nextcan, avg 3µs/call
28 | 82706 | 323ms | 82706 | 129s | goto &$method; # spent 80.7s making 877 calls to DBIx::Class::Row::update, avg 92.1ms/call # spent 34.9s making 294 calls to DBIx::Class::Storage::txn_commit, avg 119ms/call # spent 7.98s making 2 calls to DBIx::Class::Schema::deploy, avg 3.99s/call # spent 3.06s making 6706 calls to SQL::Abstract::select, avg 457µs/call # spent 923ms making 63788 calls to SQL::Abstract::_quote, avg 14µs/call # spent 414ms making 449 calls to SQL::Abstract::insert, avg 922µs/call # spent 204ms making 1313 calls to SQL::Abstract::_table, avg 156µs/call # spent 142ms making 8019 calls to DBIx::Class::Storage::DBI::_dbi_attrs_for_bind, avg 18µs/call # spent 98.0ms making 629 calls to SQL::Abstract::_order_by, avg 156µs/call # spent 44.3ms making 294 calls to DBIx::Class::Storage::txn_begin, avg 151µs/call # spent 24.0ms making 3 calls to DBIx::Class::Schema::connection, avg 8.01ms/call # spent 13.7ms making 134 calls to DBIx::Class::Row::register_column, avg 102µs/call # spent 8.67ms making 4 calls to DBIx::Class::DynamicDefault::add_columns, avg 2.17ms/call # spent 8.16ms making 4 calls to DBIx::Class::ResultSourceProxy::add_columns, avg 2.04ms/call # spent 6.60ms making 42 calls to Class::C3::Componentised::inject_base, avg 157µs/call # spent 842µs making 60 calls to DBIx::Class::Relationship::ProxyMethods::register_relationship, avg 14µs/call # spent 512µs making 5 calls to DBIx::Class::InflateColumn::Object::Enum::register_column, avg 102µs/call # spent 372µs making 5 calls to SQL::Abstract::new, avg 74µs/call # spent 304µs making 6 calls to DBIx::Class::Storage::new, avg 51µs/call # spent 156µs making 8 calls to DBIx::Class::ResultSource::new, avg 20µs/call # spent 48µs making 60 calls to DBIx::Class::Relationship::Base::register_relationship, avg 803ns/call # spent 13µs making 4 calls to DBIx::Class::Storage::DBI::deployment_statements, avg 3µs/call
29 |  |  |  |  | }
30 |  |  |  |  |
31 |  |  |  |  | package # hide me from PAUSE
32 |  |  |  |  | maybe::next;
33 |  |  |  |  |
34 |  |  |  |  | sub method {
35 |  |  |  |  | my $method = mro::_nextcan($_[0], 0);
36 |  |  |  |  | goto &$method if defined $method;
37 |  |  |  |  | return;
38 |  |  |  |  | }
39 |  |  |  |  |
40 | 1 | 400ns |  |  | require XSLoader;
41 | 1 | 201µs | 1 | 197µs | XSLoader::load('mro', $VERSION); # spent 197µs making 1 call to XSLoader::load
42 |  |  |  |  |
43 | 1 | 4µs |  |  | 1;
44 |  |  |  |  |
45 |  |  |  |  | __END__
|  |  |  |  | # spent 237ms within mro::_nextcan which was called 82706 times, avg 3µs/call: # 82706 times (237ms+0s) by next::method at line 27, avg 3µs/call sub mro::_nextcan; # xsub
|  |  |  |  | # spent 1.07ms within mro::get_linear_isa which was called 456 times, avg 2µs/call: # 288 times (711µs+0s) by Class::MOP::Class::linearized_isa at line 999 of Class/MOP/Class.pm, avg 2µs/call # 76 times (126µs+0s) by Class::C3::Componentised::inject_base at line 203 of Class/C3/Componentised.pm, avg 2µs/call # 50 times (84µs+0s) by Class::Accessor::Grouped::get_super_paths at line 375 of Class/Accessor/Grouped.pm, avg 2µs/call # 35 times (82µs+0s) by DBIx::Class::Schema::CORE:sort at line 251 of DBIx/Class/Schema.pm, avg 2µs/call # 7 times (65µs+0s) by Moose::init_meta at line 177 of Moose.pm, avg 9µs/call sub mro::get_linear_isa; # xsub
|  |  |  |  | # spent 74µs within mro::get_mro which was called 17 times, avg 4µs/call: # 17 times (74µs+0s) by Class::MOP::Class::class_precedence_list at line 1019 of Class/MOP/Class.pm, avg 4µs/call sub mro::get_mro; # xsub
|  |  |  |  | # spent 45.9ms within mro::get_pkg_gen which was called 17962 times, avg 3µs/call: # 17553 times (45.3ms+0s) by Class::Accessor::Grouped::get_inherited at line 256 of Class/Accessor/Grouped.pm, avg 3µs/call # 390 times (603µs+0s) by Class::MOP::Mixin::HasMethods::update_package_cache_flag at line 194 of Class/MOP/Mixin/HasMethods.pm, avg 2µs/call # 19 times (46µs+0s) by Class::MOP::Mixin::HasMethods::_full_method_map at line 200 of Class/MOP/Mixin/HasMethods.pm, avg 2µs/call sub mro::get_pkg_gen; # xsub
|  |  |  |  | # spent 113µs within mro::method_changed_in which was called 68 times, avg 2µs/call: # 68 times (113µs+0s) by constant::import at line 148 of constant.pm, avg 2µs/call sub mro::method_changed_in; # xsub
|  |  |  |  | # spent 184µs within mro::set_mro which was called 59 times, avg 3µs/call: # 42 times (121µs+0s) by Class::C3::Componentised::inject_base at line 194 of Class/C3/Componentised.pm, avg 3µs/call # 7 times (18µs+0s) by mro::import at line 18, avg 3µs/call # 6 times (29µs+0s) by DBIx::Class::Storage::DBI::_determine_driver at line 1151 of DBIx/Class/Storage/DBI.pm, avg 5µs/call # 4 times (15µs+0s) by Class::C3::import at line 71 of Class/C3.pm, avg 4µs/call sub mro::set_mro; # xsub