| Filename | /Users/ap13/perl5/lib/perl5/darwin-2level/Moose.pm |
| Statements | Executed 1868 statements in 11.5ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 5.92ms | 141ms | Moose::BEGIN@15 |
| 1 | 1 | 1 | 5.80ms | 6.29ms | Moose::BEGIN@10 |
| 1 | 1 | 1 | 4.96ms | 20.8ms | Moose::BEGIN@24 |
| 344 | 173 | 17 | 4.35ms | 705ms | Moose::has |
| 1 | 1 | 1 | 3.10ms | 18.8ms | Moose::BEGIN@32 |
| 1 | 1 | 1 | 2.75ms | 11.5ms | Moose::BEGIN@25 |
| 1 | 1 | 1 | 2.65ms | 2.69ms | Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@2 |
| 1 | 1 | 1 | 2.34ms | 2.57ms | Moose::BEGIN@11 |
| 1 | 1 | 1 | 2.06ms | 2.71ms | Moose::BEGIN@9 |
| 1 | 1 | 1 | 1.85ms | 48.7ms | Moose::BEGIN@12 |
| 1 | 1 | 1 | 1.74ms | 3.05ms | Moose::BEGIN@35 |
| 1 | 1 | 1 | 1.29ms | 4.31ms | Moose::BEGIN@33 |
| 17 | 1 | 1 | 1.01ms | 51.9ms | Moose::init_meta |
| 1 | 1 | 1 | 1.00ms | 2.55ms | Moose::BEGIN@36 |
| 1 | 1 | 1 | 925µs | 4.46ms | Moose::BEGIN@30 |
| 1 | 1 | 1 | 905µs | 2.67ms | Moose::BEGIN@34 |
| 1 | 1 | 1 | 820µs | 1.55ms | Moose::BEGIN@37 |
| 1 | 1 | 1 | 775µs | 104ms | Moose::BEGIN@26 |
| 1 | 1 | 1 | 441µs | 1.58ms | Moose::BEGIN@38 |
| 1 | 1 | 1 | 404µs | 404µs | Moose::bootstrap (xsub) |
| 1 | 1 | 1 | 404µs | 2.01ms | Moose::BEGIN@43 |
| 1 | 1 | 1 | 403µs | 460µs | Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@1 |
| 1 | 1 | 1 | 296µs | 3.82ms | Moose::BEGIN@14 |
| 1 | 1 | 1 | 295µs | 1.86ms | Moose::BEGIN@28 |
| 8 | 5 | 5 | 57µs | 124ms | Moose::with |
| 1 | 1 | 1 | 39µs | 39µs | Moose::BEGIN@7 |
| 2 | 2 | 2 | 20µs | 15.4ms | Moose::extends |
| 2 | 2 | 2 | 16µs | 1.06ms | Moose::before |
| 1 | 1 | 1 | 10µs | 10µs | Moose::BEGIN@17 |
| 1 | 1 | 1 | 10µs | 1.46ms | Moose::BEGIN@40 |
| 1 | 1 | 1 | 9µs | 130µs | Moose::BEGIN@41 |
| 1 | 1 | 1 | 8µs | 8µs | Moose::BEGIN@27 |
| 1 | 1 | 1 | 6µs | 6µs | Moose::BEGIN@19 |
| 0 | 0 | 0 | 0s | 0s | Moose::_get_caller |
| 0 | 0 | 0 | 0s | 0s | Moose::after |
| 0 | 0 | 0 | 0s | 0s | Moose::around |
| 0 | 0 | 0 | 0s | 0s | Moose::augment |
| 0 | 0 | 0 | 0s | 0s | Moose::inner |
| 0 | 0 | 0 | 0s | 0s | Moose::override |
| 0 | 0 | 0 | 0s | 0s | Moose::super |
| 0 | 0 | 0 | 0s | 0s | Moose::throw_error |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | 2 | 408µs | 2 | 483µs | # spent 460µs (403+58) within Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@1 which was called:
# once (403µs+58µs) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 1 # spent 460µs making 1 call to Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@1
# spent 23µs making 1 call to strict::import |
| 2 | 2 | 2.41ms | 2 | 2.70ms | # spent 2.69ms (2.65+45µs) within Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@2 which was called:
# once (2.65ms+45µs) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 2 # spent 2.69ms making 1 call to Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@2
# spent 12µs making 1 call to warnings::import |
| 3 | package Moose; | ||||
| 4 | 1 | 1µs | our $VERSION = '2.1403'; | ||
| 5 | 1 | 200ns | our $AUTHORITY = 'cpan:STEVAN'; | ||
| 6 | |||||
| 7 | 2 | 92µs | 1 | 39µs | # spent 39µs within Moose::BEGIN@7 which was called:
# once (39µs+0s) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 7 # spent 39µs making 1 call to Moose::BEGIN@7 |
| 8 | |||||
| 9 | 2 | 190µs | 1 | 2.71ms | # spent 2.71ms (2.06+650µs) within Moose::BEGIN@9 which was called:
# once (2.06ms+650µs) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 9 # spent 2.71ms making 1 call to Moose::BEGIN@9 |
| 10 | 2 | 176µs | 2 | 6.42ms | # spent 6.29ms (5.80+496µs) within Moose::BEGIN@10 which was called:
# once (5.80ms+496µs) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 10 # spent 6.29ms making 1 call to Moose::BEGIN@10
# spent 124µs making 1 call to Exporter::import |
| 11 | 2 | 289µs | 2 | 2.60ms | # spent 2.57ms (2.34+229µs) within Moose::BEGIN@11 which was called:
# once (2.34ms+229µs) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 11 # spent 2.57ms making 1 call to Moose::BEGIN@11
# spent 32µs making 1 call to Module::Runtime::import |
| 12 | 2 | 215µs | 2 | 48.7ms | # spent 48.7ms (1.85+46.8) within Moose::BEGIN@12 which was called:
# once (1.85ms+46.8ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 12 # spent 48.7ms making 1 call to Moose::BEGIN@12
# spent 59µs making 1 call to Exporter::import |
| 13 | |||||
| 14 | 2 | 171µs | 2 | 3.83ms | # spent 3.82ms (296µs+3.52) within Moose::BEGIN@14 which was called:
# once (296µs+3.52ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 14 # spent 3.82ms making 1 call to Moose::BEGIN@14
# spent 9µs making 1 call to Package::DeprecationManager::__ANON__[Package/DeprecationManager.pm:61] |
| 15 | 2 | 176µs | 2 | 141ms | # spent 141ms (5.92+135) within Moose::BEGIN@15 which was called:
# once (5.92ms+135ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 15 # spent 141ms making 1 call to Moose::BEGIN@15
# spent 56µs making 1 call to Moose::Exporter::import |
| 16 | |||||
| 17 | 2 | 75µs | 1 | 10µs | # spent 10µs within Moose::BEGIN@17 which was called:
# once (10µs+0s) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 17 # spent 10µs making 1 call to Moose::BEGIN@17 |
| 18 | |||||
| 19 | # spent 6µs within Moose::BEGIN@19 which was called:
# once (6µs+0s) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 22 | ||||
| 20 | 1 | 6µs | die "Class::MOP version $Moose::VERSION required--this is version $Class::MOP::VERSION" | ||
| 21 | if $Moose::VERSION && $Class::MOP::VERSION ne $Moose::VERSION; | ||||
| 22 | 1 | 32µs | 1 | 6µs | } # spent 6µs making 1 call to Moose::BEGIN@19 |
| 23 | |||||
| 24 | 2 | 251µs | 1 | 20.8ms | # spent 20.8ms (4.96+15.9) within Moose::BEGIN@24 which was called:
# once (4.96ms+15.9ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 24 # spent 20.8ms making 1 call to Moose::BEGIN@24 |
| 25 | 2 | 229µs | 1 | 11.5ms | # spent 11.5ms (2.75+8.79) within Moose::BEGIN@25 which was called:
# once (2.75ms+8.79ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 25 # spent 11.5ms making 1 call to Moose::BEGIN@25 |
| 26 | 2 | 178µs | 1 | 104ms | # spent 104ms (775µs+103) within Moose::BEGIN@26 which was called:
# once (775µs+103ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 26 # spent 104ms making 1 call to Moose::BEGIN@26 |
| 27 | 2 | 23µs | 1 | 8µs | # spent 8µs within Moose::BEGIN@27 which was called:
# once (8µs+0s) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 27 # spent 8µs making 1 call to Moose::BEGIN@27 |
| 28 | 2 | 180µs | 1 | 1.86ms | # spent 1.86ms (295µs+1.56) within Moose::BEGIN@28 which was called:
# once (295µs+1.56ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 28 # spent 1.86ms making 1 call to Moose::BEGIN@28 |
| 29 | |||||
| 30 | 2 | 156µs | 1 | 4.46ms | # spent 4.46ms (925µs+3.54) within Moose::BEGIN@30 which was called:
# once (925µs+3.54ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 30 # spent 4.46ms making 1 call to Moose::BEGIN@30 |
| 31 | |||||
| 32 | 2 | 185µs | 1 | 18.8ms | # spent 18.8ms (3.10+15.7) within Moose::BEGIN@32 which was called:
# once (3.10ms+15.7ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 32 # spent 18.8ms making 1 call to Moose::BEGIN@32 |
| 33 | 2 | 194µs | 1 | 4.31ms | # spent 4.31ms (1.29+3.01) within Moose::BEGIN@33 which was called:
# once (1.29ms+3.01ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 33 # spent 4.31ms making 1 call to Moose::BEGIN@33 |
| 34 | 2 | 158µs | 1 | 2.67ms | # spent 2.67ms (905µs+1.76) within Moose::BEGIN@34 which was called:
# once (905µs+1.76ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 34 # spent 2.67ms making 1 call to Moose::BEGIN@34 |
| 35 | 2 | 144µs | 1 | 3.05ms | # spent 3.05ms (1.74+1.31) within Moose::BEGIN@35 which was called:
# once (1.74ms+1.31ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 35 # spent 3.05ms making 1 call to Moose::BEGIN@35 |
| 36 | 2 | 127µs | 1 | 2.55ms | # spent 2.55ms (1.00+1.55) within Moose::BEGIN@36 which was called:
# once (1.00ms+1.55ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 36 # spent 2.55ms making 1 call to Moose::BEGIN@36 |
| 37 | 2 | 136µs | 1 | 1.55ms | # spent 1.55ms (820µs+727µs) within Moose::BEGIN@37 which was called:
# once (820µs+727µs) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 37 # spent 1.55ms making 1 call to Moose::BEGIN@37 |
| 38 | 2 | 120µs | 1 | 1.58ms | # spent 1.58ms (441µs+1.14) within Moose::BEGIN@38 which was called:
# once (441µs+1.14ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 38 # spent 1.58ms making 1 call to Moose::BEGIN@38 |
| 39 | |||||
| 40 | 2 | 34µs | 2 | 2.90ms | # spent 1.46ms (10µs+1.45) within Moose::BEGIN@40 which was called:
# once (10µs+1.45ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 40 # spent 1.46ms making 1 call to Moose::BEGIN@40
# spent 1.45ms making 1 call to Moose::Util::TypeConstraints::import |
| 41 | 2 | 28µs | 2 | 251µs | # spent 130µs (9+121) within Moose::BEGIN@41 which was called:
# once (9µs+121µs) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 41 # spent 130µs making 1 call to Moose::BEGIN@41
# spent 121µs making 1 call to Sub::Exporter::__ANON__[Sub/Exporter.pm:337] |
| 42 | |||||
| 43 | 2 | 1.06ms | 1 | 2.01ms | # spent 2.01ms (404µs+1.60) within Moose::BEGIN@43 which was called:
# once (404µs+1.60ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@11 at line 43 # spent 2.01ms making 1 call to Moose::BEGIN@43 |
| 44 | |||||
| 45 | # spent 15.4ms (20µs+15.4) within Moose::extends which was called 2 times, avg 7.72ms/call:
# once (11µs+7.72ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 17 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (9µs+7.70ms) by Moose::extends at line 419 of Moose/Exporter.pm | ||||
| 46 | 3 | 7µs | my $meta = shift; | ||
| 47 | |||||
| 48 | unless ( @_ ) | ||||
| 49 | { | ||||
| 50 | throw_exception( ExtendsMissingArgs => class_name => $meta->name ); | ||||
| 51 | } | ||||
| 52 | # this checks the metaclass to make sure | ||||
| 53 | # it is correct, sometimes it can get out | ||||
| 54 | # of sync when the classes are being built | ||||
| 55 | 1 | 7.70ms | $meta->superclasses(@_); # spent 7.70ms making 1 call to Moose::Meta::Class::superclasses | ||
| 56 | } | ||||
| 57 | |||||
| 58 | # spent 124ms (57µs+124) within Moose::with which was called 8 times, avg 15.6ms/call:
# 4 times (22µs+62.2ms) by Moose::with at line 419 of Moose/Exporter.pm, avg 15.5ms/call
# once (10µs+20.8ms) by Bio::Roary::PostAnalysis::BEGIN@13 at line 21 of lib/Bio/Roary/InflateClusters.pm
# once (8µs+16.9ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 24 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (9µs+15.4ms) by Bio::Roary::AnnotateGroups::BEGIN@21 at line 20 of lib/Bio/Roary/GeneNamesFromGFF.pm
# once (8µs+9.11ms) by Bio::Roary::OrderGenes::BEGIN@21 at line 19 of lib/Bio/Roary/ContigsToGeneIDsFromGFF.pm | ||||
| 59 | 4 | 19µs | 4 | 62.2ms | Moose::Util::apply_all_roles(shift, @_); # spent 62.2ms making 4 calls to Moose::Util::apply_all_roles, avg 15.5ms/call |
| 60 | } | ||||
| 61 | |||||
| 62 | sub throw_error { | ||||
| 63 | shift; | ||||
| 64 | Class::MOP::Object->throw_error(@_); | ||||
| 65 | } | ||||
| 66 | |||||
| 67 | # spent 705ms (4.35+701) within Moose::has which was called 344 times, avg 2.05ms/call:
# 172 times (3.08ms+348ms) by Moose::has at line 419 of Moose/Exporter.pm, avg 2.04ms/call
# once (7µs+4.27ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 43 of lib/Bio/Roary/AnnotateGroups.pm
# once (8µs+4.22ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 35 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (7µs+4.02ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 57 of lib/Bio/Roary/PostAnalysis.pm
# once (8µs+3.90ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 30 of lib/Bio/Roary/SplitGroups.pm
# once (7µs+3.88ms) by Bio::Roary::PostAnalysis::BEGIN@18 at line 32 of lib/Bio/Roary/Output/GroupsMultifastasNucleotide.pm
# once (10µs+3.38ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 26 of lib/Bio/Roary/GroupStatistics.pm
# once (10µs+3.37ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 37 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (6µs+3.36ms) by Bio::Roary::PostAnalysis::BEGIN@13 at line 27 of lib/Bio/Roary/InflateClusters.pm
# once (8µs+3.28ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 27 of lib/Bio/Roary/SplitGroups.pm
# once (10µs+3.27ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 59 of lib/Bio/Roary/PostAnalysis.pm
# once (12µs+3.25ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 40 of lib/Bio/Roary/AnnotateGroups.pm
# once (7µs+3.21ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 29 of lib/Bio/Roary/GroupStatistics.pm
# once (6µs+3.09ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 33 of lib/Bio/Roary/SplitGroups.pm
# once (11µs+3.03ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 30 of lib/Bio/Roary/Output/EmblGroups.pm
# once (6µs+2.99ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 34 of lib/Bio/Roary/SplitGroups.pm
# once (8µs+2.85ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 32 of lib/Bio/Roary/GroupStatistics.pm
# once (7µs+2.75ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 32 of lib/Bio/Roary/OrderGenes.pm
# once (9µs+2.74ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 38 of lib/Bio/Roary/AnnotateGroups.pm
# once (12µs+2.71ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 24 of lib/Bio/Roary/OrderGenes.pm
# once (9µs+2.71ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 28 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (9µs+2.64ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 25 of lib/Bio/Roary/Output/EmblGroups.pm
# once (8µs+2.64ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 35 of lib/Bio/Roary/SplitGroups.pm
# once (7µs+2.64ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 27 of lib/Bio/Roary/OrderGenes.pm
# once (12µs+2.62ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 25 of lib/Bio/Roary/OrderGenes.pm
# once (9µs+2.61ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 31 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (9µs+2.57ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 38 of lib/Bio/Roary/SplitGroups.pm
# once (10µs+2.53ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 29 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (10µs+2.53ms) by Bio::Roary::AnnotateGroups::BEGIN@21 at line 22 of lib/Bio/Roary/GeneNamesFromGFF.pm
# once (21µs+2.49ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 27 of lib/Bio/Roary/AnnotateGroups.pm
# once (10µs+2.46ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 28 of lib/Bio/Roary/SplitGroups.pm
# once (17µs+2.45ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 34 of lib/Bio/Roary/AnnotateGroups.pm
# once (8µs+2.46ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 30 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (6µs+2.46ms) by Bio::Roary::Output::GroupsMultifastasNucleotide::BEGIN@23 at line 32 of lib/Bio/Roary/Output/GroupsMultifastaNucleotide.pm
# once (12µs+2.44ms) by Bio::Roary::Output::GroupsMultifastasNucleotide::BEGIN@23 at line 24 of lib/Bio/Roary/Output/GroupsMultifastaNucleotide.pm
# once (8µs+2.44ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 32 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (8µs+2.38ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 28 of lib/Bio/Roary/Output/EmblGroups.pm
# once (9µs+2.37ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 36 of lib/Bio/Roary/AnnotateGroups.pm
# once (9µs+2.36ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 55 of lib/Bio/Roary/PostAnalysis.pm
# once (8µs+2.35ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 54 of lib/Bio/Roary/PostAnalysis.pm
# once (10µs+2.33ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 29 of lib/Bio/Roary/PostAnalysis.pm
# once (10µs+2.33ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 26 of lib/Bio/Roary/OrderGenes.pm
# once (8µs+2.27ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 38 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (9µs+2.23ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 34 of lib/Bio/Roary/AnalyseGroups.pm
# once (8µs+2.22ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 37 of lib/Bio/Roary/AnnotateGroups.pm
# once (7µs+2.22ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 32 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (8µs+2.22ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 28 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (7µs+2.19ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 53 of lib/Bio/Roary/PostAnalysis.pm
# once (7µs+2.16ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 33 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (8µs+2.14ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 33 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (9µs+2.13ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 26 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (7µs+2.13ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 29 of lib/Bio/Roary/OrderGenes.pm
# once (7µs+2.12ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 34 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (9µs+2.12ms) by Bio::Roary::OrderGenes::BEGIN@21 at line 21 of lib/Bio/Roary/ContigsToGeneIDsFromGFF.pm
# once (8µs+2.11ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 37 of lib/Bio/Roary/PostAnalysis.pm
# once (9µs+2.10ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 24 of lib/Bio/Roary/PostAnalysis.pm
# once (8µs+2.07ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 25 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (8µs+2.07ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 49 of lib/Bio/Roary/PostAnalysis.pm
# once (7µs+2.06ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 56 of lib/Bio/Roary/PostAnalysis.pm
# once (8µs+2.05ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 41 of lib/Bio/Roary/AnnotateGroups.pm
# once (7µs+2.05ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 28 of lib/Bio/Roary/OrderGenes.pm
# once (7µs+2.05ms) by Bio::Roary::PostAnalysis::BEGIN@18 at line 30 of lib/Bio/Roary/Output/GroupsMultifastasNucleotide.pm
# once (9µs+2.04ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 20 of lib/Bio/Roary/SplitGroups.pm
# once (7µs+2.04ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 24 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (7µs+2.04ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 39 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (6µs+2.04ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 33 of lib/Bio/Roary/AnnotateGroups.pm
# once (6µs+2.03ms) by Bio::Roary::Output::GroupsMultifastasNucleotide::BEGIN@23 at line 34 of lib/Bio/Roary/Output/GroupsMultifastaNucleotide.pm
# once (6µs+2.00ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 34 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (8µs+2.00ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 22 of lib/Bio/Roary/AnalyseGroups.pm
# once (6µs+2.00ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 51 of lib/Bio/Roary/PostAnalysis.pm
# once (10µs+1.99ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 29 of lib/Bio/Roary/Output/EmblGroups.pm
# once (7µs+1.99ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 50 of lib/Bio/Roary/PostAnalysis.pm
# once (7µs+1.99ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 33 of lib/Bio/Roary/GroupStatistics.pm
# once (7µs+1.99ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 28 of lib/Bio/Roary/PostAnalysis.pm
# once (7µs+1.97ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 32 of lib/Bio/Roary/AnalyseGroups.pm
# once (7µs+1.96ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 35 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (7µs+1.96ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 28 of lib/Bio/Roary/AnnotateGroups.pm
# once (8µs+1.96ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 32 of lib/Bio/Roary/Output/EmblGroups.pm
# once (6µs+1.96ms) by Bio::Roary::Output::GroupsMultifastasNucleotide::BEGIN@23 at line 31 of lib/Bio/Roary/Output/GroupsMultifastaNucleotide.pm
# once (7µs+1.95ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 31 of lib/Bio/Roary/OrderGenes.pm
# once (7µs+1.95ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 31 of lib/Bio/Roary/PostAnalysis.pm
# once (7µs+1.95ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 41 of lib/Bio/Roary/SplitGroups.pm
# once (6µs+1.94ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 26 of lib/Bio/Roary/AnalyseGroups.pm
# once (9µs+1.94ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 22 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (6µs+1.94ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 52 of lib/Bio/Roary/PostAnalysis.pm
# once (9µs+1.94ms) by Bio::Roary::PostAnalysis::BEGIN@15 at line 21 of lib/Bio/Roary/GroupLabels.pm
# once (7µs+1.92ms) by Bio::Roary::AnnotateGroups::BEGIN@21 at line 23 of lib/Bio/Roary/GeneNamesFromGFF.pm
# once (6µs+1.92ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 31 of lib/Bio/Roary/AnalyseGroups.pm
# once (10µs+1.91ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 35 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.92ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 29 of lib/Bio/Roary/AnalyseGroups.pm
# once (6µs+1.91ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 28 of lib/Bio/Roary/AnalyseGroups.pm
# once (8µs+1.91ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 19 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (6µs+1.91ms) by Bio::Roary::PostAnalysis::BEGIN@18 at line 33 of lib/Bio/Roary/Output/GroupsMultifastasNucleotide.pm
# once (7µs+1.90ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 47 of lib/Bio/Roary/PostAnalysis.pm
# once (8µs+1.90ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 38 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.90ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 34 of lib/Bio/Roary/Output/EmblGroups.pm
# once (8µs+1.88ms) by Bio::Roary::PostAnalysis::BEGIN@18 at line 25 of lib/Bio/Roary/Output/GroupsMultifastasNucleotide.pm
# once (9µs+1.88ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 31 of lib/Bio/Roary/GroupStatistics.pm
# once (7µs+1.87ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 23 of lib/Bio/Roary/AnalyseGroups.pm
# once (6µs+1.86ms) by Bio::Roary::OrderGenes::BEGIN@21 at line 23 of lib/Bio/Roary/ContigsToGeneIDsFromGFF.pm
# once (6µs+1.85ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 36 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (7µs+1.85ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 27 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (6µs+1.84ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 26 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.80ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 35 of lib/Bio/Roary/Output/EmblGroups.pm
# once (6µs+1.79ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 27 of lib/Bio/Roary/AnalyseGroups.pm
# once (7µs+1.79ms) by Bio::Roary::OrderGenes::BEGIN@21 at line 24 of lib/Bio/Roary/ContigsToGeneIDsFromGFF.pm
# once (6µs+1.78ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 27 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.78ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 32 of lib/Bio/Roary/AnnotateGroups.pm
# once (6µs+1.77ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 33 of lib/Bio/Roary/Output/EmblGroups.pm
# once (7µs+1.77ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 46 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.77ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 34 of lib/Bio/Roary/GroupStatistics.pm
# once (6µs+1.77ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 30 of lib/Bio/Roary/AnnotateGroups.pm
# once (6µs+1.76ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 21 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (8µs+1.75ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 33 of lib/Bio/Roary/OrderGenes.pm
# once (6µs+1.75ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 34 of lib/Bio/Roary/PostAnalysis.pm
# once (8µs+1.74ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 25 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (6µs+1.74ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 22 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (7µs+1.74ms) by Bio::Roary::PostAnalysis::BEGIN@18 at line 28 of lib/Bio/Roary/Output/GroupsMultifastasNucleotide.pm
# once (6µs+1.73ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 24 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (5µs+1.72ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 35 of lib/Bio/Roary/GroupStatistics.pm
# once (10µs+1.72ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 26 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (6µs+1.72ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 31 of lib/Bio/Roary/AnnotateGroups.pm
# once (7µs+1.71ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 29 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (6µs+1.70ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 25 of lib/Bio/Roary/PostAnalysis.pm
# once (8µs+1.70ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 37 of lib/Bio/Roary/GroupStatistics.pm
# once (6µs+1.69ms) by Bio::Roary::Output::GroupsMultifastasNucleotide::BEGIN@23 at line 26 of lib/Bio/Roary/Output/GroupsMultifastaNucleotide.pm
# once (7µs+1.69ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 27 of lib/Bio/Roary/GroupStatistics.pm
# once (7µs+1.67ms) by Bio::Roary::PostAnalysis::BEGIN@15 at line 22 of lib/Bio/Roary/GroupLabels.pm
# once (8µs+1.64ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 31 of lib/Bio/Roary/SplitGroups.pm
# once (6µs+1.63ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 41 of lib/Bio/Roary/PostAnalysis.pm
# once (13µs+1.62ms) by Bio::Roary::PostAnalysis::BEGIN@13 at line 23 of lib/Bio/Roary/InflateClusters.pm
# once (6µs+1.61ms) by Bio::Roary::OrderGenes::BEGIN@21 at line 26 of lib/Bio/Roary/ContigsToGeneIDsFromGFF.pm
# once (6µs+1.60ms) by Bio::Roary::PostAnalysis::BEGIN@15 at line 24 of lib/Bio/Roary/GroupLabels.pm
# once (8µs+1.59ms) by Bio::Roary::PostAnalysis::BEGIN@13 at line 24 of lib/Bio/Roary/InflateClusters.pm
# once (6µs+1.59ms) by Bio::Roary::PostAnalysis::BEGIN@16 at line 29 of lib/Bio/Roary/AnnotateGroups.pm
# once (7µs+1.58ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 34 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (6µs+1.58ms) by Bio::Roary::PostAnalysis::BEGIN@17 at line 28 of lib/Bio/Roary/GroupStatistics.pm
# once (6µs+1.57ms) by Bio::Roary::PostAnalysis::BEGIN@18 at line 26 of lib/Bio/Roary/Output/GroupsMultifastasNucleotide.pm
# once (6µs+1.57ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 26 of lib/Bio/Roary/Output/EmblGroups.pm
# once (7µs+1.56ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 42 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.57ms) by Bio::Roary::PostAnalysis::BEGIN@21 at line 27 of lib/Bio/Roary/Output/EmblGroups.pm
# once (6µs+1.56ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 44 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.56ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 45 of lib/Bio/Roary/PostAnalysis.pm
# once (5µs+1.55ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 43 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.55ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 27 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (6µs+1.54ms) by Bio::Roary::PostAnalysis::BEGIN@18 at line 27 of lib/Bio/Roary/Output/GroupsMultifastasNucleotide.pm
# once (5µs+1.54ms) by Bio::Roary::PostAnalysis::BEGIN@13 at line 25 of lib/Bio/Roary/InflateClusters.pm
# once (6µs+1.54ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 39 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.53ms) by Bio::Roary::PostAnalysis::BEGIN@20 at line 35 of lib/Bio/Roary/OrderGenes.pm
# once (6µs+1.53ms) by Bio::Roary::Output::GroupsMultifastasNucleotide::BEGIN@23 at line 29 of lib/Bio/Roary/Output/GroupsMultifastaNucleotide.pm
# once (6µs+1.53ms) by Bio::Roary::Output::GroupsMultifastasNucleotide::BEGIN@23 at line 27 of lib/Bio/Roary/Output/GroupsMultifastaNucleotide.pm
# once (7µs+1.52ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@15 at line 27 of lib/Bio/Roary/External/ProteinMuscleAlignmentFromNucleotides.pm
# once (6µs+1.52ms) by Bio::Roary::Main::RoaryPostAnalysis::BEGIN@17 at line 20 of lib/Bio/Roary/CommandLine/RoaryPostAnalysis.pm
# once (6µs+1.52ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 23 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (6µs+1.51ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 21 of lib/Bio/Roary/SplitGroups.pm
# once (5µs+1.51ms) by Bio::Roary::PostAnalysis::BEGIN@13 at line 26 of lib/Bio/Roary/InflateClusters.pm
# once (5µs+1.51ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 24 of lib/Bio/Roary/SplitGroups.pm
# once (6µs+1.50ms) by Bio::Roary::PostAnalysis::BEGIN@14 at line 24 of lib/Bio/Roary/AnalyseGroups.pm
# once (5µs+1.50ms) by Bio::Roary::PostAnalysis::BEGIN@15 at line 26 of lib/Bio/Roary/GroupLabels.pm
# once (14µs+1.48ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 33 of lib/Bio/Roary/PostAnalysis.pm
# once (6µs+1.47ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 40 of lib/Bio/Roary/PostAnalysis.pm
# once (5µs+1.47ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 33 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (6µs+1.47ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 28 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (6µs+1.46ms) by Bio::Roary::CommandLine::RoaryPostAnalysis::BEGIN@13 at line 32 of lib/Bio/Roary/PostAnalysis.pm
# once (5µs+1.45ms) by Bio::Roary::PostAnalysis::BEGIN@15 at line 25 of lib/Bio/Roary/GroupLabels.pm
# once (5µs+1.45ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 25 of lib/Bio/Roary/SplitGroups.pm
# once (6µs+1.45ms) by Bio::Roary::Output::GroupsMultifastasNucleotide::BEGIN@23 at line 28 of lib/Bio/Roary/Output/GroupsMultifastaNucleotide.pm
# once (5µs+1.45ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 23 of lib/Bio/Roary/SplitGroups.pm
# once (6µs+1.44ms) by Bio::Roary::PostAnalysis::BEGIN@22 at line 22 of lib/Bio/Roary/SplitGroups.pm
# once (5µs+1.44ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 31 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (6µs+1.44ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 29 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (5µs+1.43ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 32 of lib/Bio/Roary/Output/NumberOfGroups.pm
# once (5µs+1.42ms) by Bio::Roary::PostAnalysis::BEGIN@19 at line 30 of lib/Bio/Roary/Output/NumberOfGroups.pm | ||||
| 68 | 1376 | 2.75ms | my $meta = shift; | ||
| 69 | my $name = shift; | ||||
| 70 | |||||
| 71 | 172 | 1.59ms | my %context = Moose::Util::_caller_info; # spent 1.59ms making 172 calls to Moose::Util::_caller_info, avg 9µs/call | ||
| 72 | $context{context} = 'has declaration'; | ||||
| 73 | $context{type} = 'class'; | ||||
| 74 | my @options = ( definition_context => \%context, @_ ); | ||||
| 75 | my $attrs = ( ref($name) eq 'ARRAY' ) ? $name : [ ($name) ]; | ||||
| 76 | 172 | 346ms | $meta->add_attribute( $_, @options ) for @$attrs; # spent 346ms making 172 calls to Moose::Meta::Class::add_attribute, avg 2.01ms/call | ||
| 77 | } | ||||
| 78 | |||||
| 79 | # spent 1.06ms (16µs+1.05) within Moose::before which was called 2 times, avg 532µs/call:
# once (10µs+533µs) by Module::Runtime::require_module at line 36 of lib/Bio/Roary/CommandLine/Common.pm
# once (6µs+514µs) by Moose::before at line 419 of Moose/Exporter.pm | ||||
| 80 | 1 | 6µs | 1 | 514µs | Moose::Util::add_method_modifier(shift, 'before', \@_); # spent 514µs making 1 call to Moose::Util::add_method_modifier |
| 81 | } | ||||
| 82 | |||||
| 83 | sub after { | ||||
| 84 | Moose::Util::add_method_modifier(shift, 'after', \@_); | ||||
| 85 | } | ||||
| 86 | |||||
| 87 | sub around { | ||||
| 88 | Moose::Util::add_method_modifier(shift, 'around', \@_); | ||||
| 89 | } | ||||
| 90 | |||||
| 91 | 1 | 100ns | our $SUPER_PACKAGE; | ||
| 92 | 1 | 0s | our $SUPER_BODY; | ||
| 93 | 1 | 200ns | our @SUPER_ARGS; | ||
| 94 | |||||
| 95 | sub super { | ||||
| 96 | if (@_) { | ||||
| 97 | carp 'Arguments passed to super() are ignored'; | ||||
| 98 | } | ||||
| 99 | |||||
| 100 | # This check avoids a recursion loop - see | ||||
| 101 | # t/bugs/super_recursion.t | ||||
| 102 | return if defined $SUPER_PACKAGE && $SUPER_PACKAGE ne caller(); | ||||
| 103 | return unless $SUPER_BODY; $SUPER_BODY->(@SUPER_ARGS); | ||||
| 104 | } | ||||
| 105 | |||||
| 106 | sub override { | ||||
| 107 | my $meta = shift; | ||||
| 108 | my ( $name, $method ) = @_; | ||||
| 109 | $meta->add_override_method_modifier( $name => $method ); | ||||
| 110 | } | ||||
| 111 | |||||
| 112 | sub inner { | ||||
| 113 | my $pkg = caller(); | ||||
| 114 | our ( %INNER_BODY, %INNER_ARGS ); | ||||
| 115 | |||||
| 116 | if ( my $body = $INNER_BODY{$pkg} ) { | ||||
| 117 | my @args = @{ $INNER_ARGS{$pkg} }; | ||||
| 118 | local $INNER_ARGS{$pkg}; | ||||
| 119 | local $INNER_BODY{$pkg}; | ||||
| 120 | return $body->(@args); | ||||
| 121 | } else { | ||||
| 122 | return; | ||||
| 123 | } | ||||
| 124 | } | ||||
| 125 | |||||
| 126 | sub augment { | ||||
| 127 | my $meta = shift; | ||||
| 128 | my ( $name, $method ) = @_; | ||||
| 129 | $meta->add_augment_method_modifier( $name => $method ); | ||||
| 130 | } | ||||
| 131 | |||||
| 132 | 1 | 8µs | 1 | 884µs | Moose::Exporter->setup_import_methods( # spent 884µs making 1 call to Moose::Exporter::setup_import_methods |
| 133 | with_meta => [ | ||||
| 134 | qw( extends with has before after around override augment ) | ||||
| 135 | ], | ||||
| 136 | as_is => [ | ||||
| 137 | qw( super inner ), | ||||
| 138 | 'Carp::confess', | ||||
| 139 | 'Scalar::Util::blessed', | ||||
| 140 | ], | ||||
| 141 | ); | ||||
| 142 | |||||
| 143 | # spent 51.9ms (1.01+50.9) within Moose::init_meta which was called 17 times, avg 3.06ms/call:
# 17 times (1.01ms+50.9ms) by Moose::import at line 484 of Moose/Exporter.pm, avg 3.06ms/call | ||||
| 144 | 238 | 623µs | shift; | ||
| 145 | my %args = @_; | ||||
| 146 | |||||
| 147 | my $class = $args{for_class} | ||||
| 148 | or throw_exception( InitMetaRequiresClass => params => \%args ); | ||||
| 149 | |||||
| 150 | my $base_class = $args{base_class} || 'Moose::Object'; | ||||
| 151 | my $metaclass = $args{metaclass} || 'Moose::Meta::Class'; | ||||
| 152 | my $meta_name = exists $args{meta_name} ? $args{meta_name} : 'meta'; | ||||
| 153 | |||||
| 154 | 17 | 72µs | throw_exception( MetaclassNotLoaded => class_name => $metaclass ) # spent 72µs making 17 calls to Class::Load::XS::is_class_loaded, avg 4µs/call | ||
| 155 | unless is_class_loaded($metaclass); | ||||
| 156 | |||||
| 157 | 17 | 30µs | throw_exception( MetaclassMustBeASubclassOfMooseMetaClass => class_name => $metaclass ) # spent 30µs making 17 calls to UNIVERSAL::isa, avg 2µs/call | ||
| 158 | unless $metaclass->isa('Moose::Meta::Class'); | ||||
| 159 | |||||
| 160 | # make a subtype for each Moose class | ||||
| 161 | 34 | 12.5ms | class_type($class) # spent 12.1ms making 17 calls to Moose::Util::TypeConstraints::class_type, avg 710µs/call
# spent 413µs making 17 calls to Moose::Util::TypeConstraints::find_type_constraint, avg 24µs/call | ||
| 162 | unless find_type_constraint($class); | ||||
| 163 | |||||
| 164 | my $meta; | ||||
| 165 | |||||
| 166 | 85 | 359µs | 17 | 41µs | if ( $meta = Class::MOP::get_metaclass_by_name($class) ) { # spent 41µs making 17 calls to Class::MOP::get_metaclass_by_name, avg 2µs/call |
| 167 | unless ( $meta->isa("Moose::Meta::Class") ) { | ||||
| 168 | if ( $meta->isa('Moose::Meta::Role') ) { | ||||
| 169 | throw_exception( MetaclassIsARoleNotASubclassOfGivenMetaclass => role_name => $class, | ||||
| 170 | metaclass => $metaclass, | ||||
| 171 | role => $meta | ||||
| 172 | ); | ||||
| 173 | } else { | ||||
| 174 | throw_exception( MetaclassIsNotASubclassOfGivenMetaclass => class_name => $class, | ||||
| 175 | metaclass => $metaclass, | ||||
| 176 | class => $meta | ||||
| 177 | ); | ||||
| 178 | } | ||||
| 179 | } | ||||
| 180 | } else { | ||||
| 181 | # no metaclass | ||||
| 182 | |||||
| 183 | # now we check whether our ancestors have metaclass, and if so borrow that | ||||
| 184 | 17 | 77µs | my ( undef, @isa ) = @{ mro::get_linear_isa($class) }; # spent 77µs making 17 calls to mro::get_linear_isa, avg 5µs/call | ||
| 185 | |||||
| 186 | foreach my $ancestor ( @isa ) { | ||||
| 187 | my $ancestor_meta = Class::MOP::get_metaclass_by_name($ancestor) || next; | ||||
| 188 | |||||
| 189 | my $ancestor_meta_class = $ancestor_meta->_real_ref_name; | ||||
| 190 | |||||
| 191 | # if we have an ancestor metaclass that inherits $metaclass, we use | ||||
| 192 | # that. This is like _fix_metaclass_incompatibility, but we can do it now. | ||||
| 193 | |||||
| 194 | # the case of having an ancestry is not very common, but arises in | ||||
| 195 | # e.g. Reaction | ||||
| 196 | unless ( $metaclass->isa( $ancestor_meta_class ) ) { | ||||
| 197 | if ( $ancestor_meta_class->isa($metaclass) ) { | ||||
| 198 | $metaclass = $ancestor_meta_class; | ||||
| 199 | } | ||||
| 200 | } | ||||
| 201 | } | ||||
| 202 | |||||
| 203 | 17 | 12.8ms | $meta = $metaclass->initialize($class); # spent 12.8ms making 17 calls to Moose::Meta::Class::initialize, avg 752µs/call | ||
| 204 | 34 | 550µs | my $filename = module_notional_filename($meta->name); # spent 536µs making 17 calls to Module::Runtime::module_notional_filename, avg 32µs/call
# spent 14µs making 17 calls to Class::MOP::Package::name, avg 824ns/call | ||
| 205 | $INC{$filename} = '(set by Moose)' | ||||
| 206 | unless exists $INC{$filename}; | ||||
| 207 | } | ||||
| 208 | |||||
| 209 | 51 | 86µs | if (defined $meta_name) { | ||
| 210 | # also check for inherited non moose 'meta' method? | ||||
| 211 | 17 | 576µs | my $existing = $meta->get_method($meta_name); # spent 576µs making 17 calls to Class::MOP::Mixin::HasMethods::get_method, avg 34µs/call | ||
| 212 | if ($existing && !$existing->isa('Class::MOP::Method::Meta')) { | ||||
| 213 | Carp::cluck "Moose is overwriting an existing method named " | ||||
| 214 | . "$meta_name in class $class with a method " | ||||
| 215 | . "which returns the class's metaclass. If this is " | ||||
| 216 | . "actually what you want, you should remove the " | ||||
| 217 | . "existing method, otherwise, you should rename or " | ||||
| 218 | . "disable this generated method using the " | ||||
| 219 | . "'-meta_name' option to 'use Moose'."; | ||||
| 220 | } | ||||
| 221 | 17 | 9.37ms | $meta->_add_meta_method($meta_name); # spent 9.37ms making 17 calls to Class::MOP::Mixin::HasMethods::_add_meta_method, avg 551µs/call | ||
| 222 | } | ||||
| 223 | |||||
| 224 | # make sure they inherit from Moose::Object | ||||
| 225 | 34 | 13.7ms | $meta->superclasses($base_class) # spent 14.9ms making 34 calls to Moose::Meta::Class::superclasses, avg 439µs/call, recursion: max depth 1, sum of overlapping time 1.27ms | ||
| 226 | unless $meta->superclasses(); | ||||
| 227 | |||||
| 228 | return $meta; | ||||
| 229 | } | ||||
| 230 | |||||
| 231 | # This may be used in some older MooseX extensions. | ||||
| 232 | sub _get_caller { | ||||
| 233 | goto &Moose::Exporter::_get_caller; | ||||
| 234 | } | ||||
| 235 | |||||
| 236 | ## make 'em all immutable | ||||
| 237 | |||||
| 238 | 21 | 14µs | $_->make_immutable( # spent 14µs making 21 calls to Class::MOP::Class::is_mutable, avg 643ns/call | ||
| 239 | inline_constructor => 1, | ||||
| 240 | constructor_name => "_new", | ||||
| 241 | # these are Class::MOP accessors, so they need inlining | ||||
| 242 | inline_accessors => 1 | ||||
| 243 | 43 | 174µs | 42 | 78.1ms | ) for grep { $_->is_mutable } # spent 76.1ms making 21 calls to Class::MOP::Class::make_immutable, avg 3.63ms/call
# spent 1.79ms making 9 calls to Class::MOP::Object::meta, avg 199µs/call
# spent 19µs making 2 calls to Moose::Meta::Role::Method::Required::meta, avg 9µs/call
# spent 13µs making 1 call to Moose::Meta::TypeCoercion::Union::meta
# spent 11µs making 1 call to Moose::Meta::Role::Application::ToRole::meta
# spent 11µs making 1 call to Moose::Meta::TypeCoercion::meta
# spent 11µs making 1 call to Moose::Meta::Role::meta
# spent 10µs making 1 call to Class::MOP::Mixin::meta
# spent 10µs making 1 call to Moose::Meta::Role::Composite::meta
# spent 10µs making 1 call to Moose::Meta::Role::Application::RoleSummation::meta
# spent 10µs making 1 call to Moose::Meta::Role::Application::meta
# spent 10µs making 1 call to Moose::Meta::Role::Application::ToClass::meta
# spent 9µs making 1 call to Moose::Meta::Role::Application::ToInstance::meta |
| 244 | map { $_->meta } | ||||
| 245 | qw( | ||||
| 246 | Moose::Meta::Attribute | ||||
| 247 | Moose::Meta::Class | ||||
| 248 | Moose::Meta::Instance | ||||
| 249 | |||||
| 250 | Moose::Meta::TypeCoercion | ||||
| 251 | Moose::Meta::TypeCoercion::Union | ||||
| 252 | |||||
| 253 | Moose::Meta::Method | ||||
| 254 | Moose::Meta::Method::Constructor | ||||
| 255 | Moose::Meta::Method::Destructor | ||||
| 256 | Moose::Meta::Method::Overridden | ||||
| 257 | Moose::Meta::Method::Augmented | ||||
| 258 | |||||
| 259 | Moose::Meta::Role | ||||
| 260 | Moose::Meta::Role::Attribute | ||||
| 261 | Moose::Meta::Role::Method | ||||
| 262 | Moose::Meta::Role::Method::Required | ||||
| 263 | Moose::Meta::Role::Method::Conflicting | ||||
| 264 | |||||
| 265 | Moose::Meta::Role::Composite | ||||
| 266 | |||||
| 267 | Moose::Meta::Role::Application | ||||
| 268 | Moose::Meta::Role::Application::RoleSummation | ||||
| 269 | Moose::Meta::Role::Application::ToClass | ||||
| 270 | Moose::Meta::Role::Application::ToRole | ||||
| 271 | Moose::Meta::Role::Application::ToInstance | ||||
| 272 | ); | ||||
| 273 | |||||
| 274 | 3 | 2µs | $_->make_immutable( # spent 2µs making 3 calls to Class::MOP::Class::is_mutable, avg 833ns/call | ||
| 275 | inline_constructor => 0, | ||||
| 276 | constructor_name => undef, | ||||
| 277 | # these are Class::MOP accessors, so they need inlining | ||||
| 278 | inline_accessors => 1 | ||||
| 279 | 7 | 34µs | 6 | 8.70ms | ) for grep { $_->is_mutable } # spent 8.07ms making 3 calls to Class::MOP::Class::make_immutable, avg 2.69ms/call
# spent 614µs making 2 calls to Class::MOP::Object::meta, avg 307µs/call
# spent 13µs making 1 call to Class::MOP::Mixin::meta |
| 280 | map { $_->meta } | ||||
| 281 | qw( | ||||
| 282 | Moose::Meta::Method::Accessor | ||||
| 283 | Moose::Meta::Method::Delegation | ||||
| 284 | Moose::Meta::Mixin::AttributeCore | ||||
| 285 | ); | ||||
| 286 | |||||
| 287 | 1 | 35µs | 1; | ||
| 288 | |||||
| 289 | # ABSTRACT: A postmodern object system for Perl 5 | ||||
| 290 | |||||
| 291 | __END__ | ||||
# spent 404µs within Moose::bootstrap which was called:
# once (404µs+0s) by DynaLoader::bootstrap at line 217 of DynaLoader.pm |