Profile of mro.pm

← Index
NYTProf Performance Profile «line view»
For script/ponapi
Run on Wed Feb 10 15:51:26 2016
Reported on Thu Feb 11 09:43:10 2016

Filename | /usr/lib/perl/5.18/mro.pm
Statements | Executed 8 statements in 271µs

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
1181 | 3 | 3 | 2.02ms | 2.02ms | mro::::get_linear_isa mro::get_linear_isa (xsub)
1371 | 2 | 1 | 1.53ms | 1.53ms | mro::::get_pkg_gen mro::get_pkg_gen (xsub)
66 | 1 | 1 | 157µs | 157µs | mro::::method_changed_in mro::method_changed_in (xsub)
50 | 1 | 1 | 87µs | 87µs | mro::::get_mro mro::get_mro (xsub)
1 | 1 | 1 | 8µs | 17µs | mro::::BEGIN@10 mro::BEGIN@10
1 | 1 | 1 | 5µs | 8µs | mro::::BEGIN@11 mro::BEGIN@11
0 | 0 | 0 | 0s | 0s | maybe::next::::methodmaybe::next::method
0 | 0 | 0 | 0s | 0s | mro::::import mro::import
0 | 0 | 0 | 0s | 0s | next::::can next::can
0 | 0 | 0 | 0s | 0s | next::::method next::method

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 | 2 | 18µs | 2 | 26µs | # spent 17µs (8+9) within mro::BEGIN@10 which was called: # once (8µs+9µs) by MRO::Compat::BEGIN@10 at line 10 use strict; # spent 17µs making 1 call to mro::BEGIN@10 # spent 9µs making 1 call to strict::import
11 | 2 | 140µs | 2 | 11µs | # spent 8µs (5+3) within mro::BEGIN@11 which was called: # once (5µs+3µs) by MRO::Compat::BEGIN@10 at line 11 use warnings; # spent 8µs making 1 call to mro::BEGIN@11 # spent 3µ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 | 400ns |  |  | our $VERSION = '1.11';
16 |  |  |  |  |
17 |  |  |  |  | sub import {
18 |  |  |  |  | mro::set_mro(scalar(caller), $_[1]) if $_[1];
19 |  |  |  |  | }
20 |  |  |  |  |
21 |  |  |  |  | package # hide me from PAUSE
22 |  |  |  |  | next;
23 |  |  |  |  |
24 |  |  |  |  | sub can { mro::_nextcan($_[0], 0) }
25 |  |  |  |  |
26 |  |  |  |  | sub method {
27 |  |  |  |  | my $method = mro::_nextcan($_[0], 1);
28 |  |  |  |  | goto &$method;
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 | 300ns |  |  | require XSLoader;
41 | 1 | 109µs | 1 | 104µs | XSLoader::load('mro'); # spent 104µs making 1 call to XSLoader::load
42 |  |  |  |  |
43 | 1 | 3µs |  |  | 1;
44 |  |  |  |  |
45 |  |  |  |  | __END__
|  |  |  |  | # spent 2.02ms within mro::get_linear_isa which was called 1181 times, avg 2µs/call: # 969 times (1.65ms+0s) by Class::MOP::Class::linearized_isa at line 1007 of Class/MOP/Class.pm, avg 2µs/call # 184 times (281µs+0s) by overload::mycan at line 127 of overload.pm, avg 2µs/call # 28 times (93µs+0s) by Moose::init_meta at line 184 of Moose.pm, avg 3µs/call sub mro::get_linear_isa; # xsub
|  |  |  |  | # spent 87µs within mro::get_mro which was called 50 times, avg 2µs/call: # 50 times (87µs+0s) by Class::MOP::Class::class_precedence_list at line 1027 of Class/MOP/Class.pm, avg 2µs/call sub mro::get_mro; # xsub
|  |  |  |  | # spent 1.53ms within mro::get_pkg_gen which was called 1371 times, avg 1µs/call: # 1264 times (1.39ms+0s) by Class::MOP::Mixin::HasMethods::update_package_cache_flag at line 209 of Class/MOP/Mixin/HasMethods.pm, avg 1µs/call # 107 times (137µs+0s) by Class::MOP::Mixin::HasMethods::_full_method_map at line 215 of Class/MOP/Mixin/HasMethods.pm, avg 1µs/call sub mro::get_pkg_gen; # xsub
|  |  |  |  | # spent 157µs within mro::method_changed_in which was called 66 times, avg 2µs/call: # 66 times (157µs+0s) by constant::import at line 151 of constant.pm, avg 2µs/call sub mro::method_changed_in; # xsub