← Index
NYTProf Performance Profile   « block view • line view • sub view »
For /usr/local/src/github.com/foswiki/core/bin/view
  Run on Sun Dec 4 17:17:59 2011
Reported on Sun Dec 4 17:27:17 2011

Filename/usr/local/src/github.com/foswiki/core/lib/Foswiki/I18N/Fallback.pm
StatementsExecuted 366 statements in 2.42ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
58221.34ms1.68msFoswiki::I18N::Fallback::::maketextFoswiki::I18N::Fallback::maketext
17431322µs322µsFoswiki::I18N::Fallback::::CORE:substFoswiki::I18N::Fallback::CORE:subst (opcode)
11143µs57µsFoswiki::I18N::Fallback::::finishFoswiki::I18N::Fallback::finish
11131µs41µsFoswiki::I18N::Fallback::::BEGIN@7Foswiki::I18N::Fallback::BEGIN@7
11127µs50µsFoswiki::I18N::Fallback::::BEGIN@8Foswiki::I18N::Fallback::BEGIN@8
11119µs19µsFoswiki::I18N::Fallback::::newFoswiki::I18N::Fallback::new
81119µs19µsFoswiki::I18N::Fallback::::CORE:substcontFoswiki::I18N::Fallback::CORE:substcont (opcode)
11110µs10µsFoswiki::I18N::Fallback::::BEGIN@10Foswiki::I18N::Fallback::BEGIN@10
1119µs9µsFoswiki::I18N::Fallback::::languageFoswiki::I18N::Fallback::language
0000s0sFoswiki::I18N::Fallback::::_handlePluralsFoswiki::I18N::Fallback::_handlePlurals
0000s0sFoswiki::I18N::Fallback::::enabled_languagesFoswiki::I18N::Fallback::enabled_languages
0000s0sFoswiki::I18N::Fallback::::fromSiteCharSetFoswiki::I18N::Fallback::fromSiteCharSet
0000s0sFoswiki::I18N::Fallback::::toSiteCharSetFoswiki::I18N::Fallback::toSiteCharSet
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# See bottom of file for license and copyright information
2# Foswiki::I18N::Fallback - a fallback class for when
3# Locale::Maketext isn't available.
4
5package Foswiki::I18N::Fallback;
6
7252µs251µs
# spent 41µs (31+10) within Foswiki::I18N::Fallback::BEGIN@7 which was called: # once (31µs+10µs) by Foswiki::I18N::new at line 7
use strict;
# spent 41µs making 1 call to Foswiki::I18N::Fallback::BEGIN@7 # spent 10µs making 1 call to strict::import
8250µs273µs
# spent 50µs (27+23) within Foswiki::I18N::Fallback::BEGIN@8 which was called: # once (27µs+23µs) by Foswiki::I18N::new at line 8
use warnings;
# spent 50µs making 1 call to Foswiki::I18N::Fallback::BEGIN@8 # spent 23µs making 1 call to warnings::import
9
102545µs110µs
# spent 10µs within Foswiki::I18N::Fallback::BEGIN@10 which was called: # once (10µs+0s) by Foswiki::I18N::new at line 10
use Foswiki::I18N ();
# spent 10µs making 1 call to Foswiki::I18N::Fallback::BEGIN@10
11115µsour @ISA = ('Foswiki::I18N');
12
13
# spent 19µs within Foswiki::I18N::Fallback::new which was called: # once (19µs+0s) by Foswiki::I18N::new at line 176 of /usr/local/src/github.com/foswiki/core/lib/Foswiki/I18N.pm
sub new {
1412µs my $class = shift;
15112µs my $this = bless( {}, $class );
16110µs return $this;
17}
18
19
# spent 57µs (43+14) within Foswiki::I18N::Fallback::finish which was called: # once (43µs+14µs) by Foswiki::finish at line 2100 of /usr/local/src/github.com/foswiki/core/lib/Foswiki.pm
sub finish {
20
21 # No data, nothing to do.
22 # Must call SUPER finish to avoid memory leaks
2312µs my $this = shift;
24140µs114µs $this->SUPER::finish(@_);
# spent 14µs making 1 call to Foswiki::I18N::finish
25}
26
27
# spent 1.68ms (1.34+340µs) within Foswiki::I18N::Fallback::maketext which was called 58 times, avg 29µs/call: # 52 times (1.18ms+302µs) by Foswiki::MAKETEXT at line 38 of /usr/local/src/github.com/foswiki/core/lib/Foswiki/Macros/MAKETEXT.pm, avg 28µs/call # 6 times (159µs+39µs) by Foswiki::Search::formatResult at line 1200 of /usr/local/src/github.com/foswiki/core/lib/Foswiki/Search.pm, avg 33µs/call
sub maketext {
2858147µs my ( $this, $text, @args ) = @_;
29
305876µs return '' unless $text;
31
32 # substitute parameters:
3362502µs66157µs $text =~ s/\[\_(\d+)\]/$args[$1-1]/ge;
# spent 138µs making 58 calls to Foswiki::I18N::Fallback::CORE:subst, avg 2µs/call # spent 19µs making 8 calls to Foswiki::I18N::Fallback::CORE:substcont, avg 2µs/call
34
35 # unescape escaped square brackets:
3658319µs5894µs $text =~ s/~(\[|\])/$1/g;
# spent 94µs making 58 calls to Foswiki::I18N::Fallback::CORE:subst, avg 2µs/call
37
38 #plurals:
39 $text =~
4058310µs5890µs s/\[\*,\_(\d+),([^,]+)(,([^,]+))?\]/_handlePlurals($args[$1-1],$2,$4)/ge;
# spent 90µs making 58 calls to Foswiki::I18N::Fallback::CORE:subst, avg 2µs/call
41
4258326µs return $text;
43}
44
45sub _handlePlurals {
46 my ( $number, $singular, $plural ) = @_;
47
48 # bad hack, but Locale::Maketext does it the same way ;)
49 return
50 $number . ' '
51 . (
52 ( $number == 1 )
53 ? $singular
54 : ( $plural ? ($plural) : ( $singular . 's' ) )
55 );
56}
57
58
# spent 9µs within Foswiki::I18N::Fallback::language which was called: # once (9µs+0s) by Foswiki::Plugins::JQueryPlugin::UI::init at line 63 of /usr/local/src/github.com/foswiki/core/lib/Foswiki/Plugins/JQueryPlugin/UI.pm
sub language {
59111µs return 'en';
60}
61
62sub enabled_languages {
63 my $this = shift;
64 return $this->{enabled_languages};
65}
66
67sub fromSiteCharSet {
68 my ( $this, $text ) = @_;
69 return $text;
70}
71
72sub toSiteCharSet {
73 my ( $this, $text ) = @_;
74 return $text;
75}
76
7716µs1;
78__END__
 
# spent 322µs within Foswiki::I18N::Fallback::CORE:subst which was called 174 times, avg 2µs/call: # 58 times (138µs+0s) by Foswiki::I18N::Fallback::maketext at line 33, avg 2µs/call # 58 times (94µs+0s) by Foswiki::I18N::Fallback::maketext at line 36, avg 2µs/call # 58 times (90µs+0s) by Foswiki::I18N::Fallback::maketext at line 40, avg 2µs/call
sub Foswiki::I18N::Fallback::CORE:subst; # opcode
# spent 19µs within Foswiki::I18N::Fallback::CORE:substcont which was called 8 times, avg 2µs/call: # 8 times (19µs+0s) by Foswiki::I18N::Fallback::maketext at line 33, avg 2µs/call
sub Foswiki::I18N::Fallback::CORE:substcont; # opcode