← Index
NYTProf Performance Profile   « line view »
For ./view
  Run on Fri Jul 31 19:05:14 2015
Reported on Fri Jul 31 19:08:10 2015

Filename/var/www/foswiki11/lib/Foswiki/Plugins/SmiliesPlugin.pm
StatementsExecuted 287 statements in 5.10ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
5114.05ms4.05msFoswiki::Plugins::SmiliesPlugin::::preRenderingHandlerFoswiki::Plugins::SmiliesPlugin::preRenderingHandler
111333µs9.13msFoswiki::Plugins::SmiliesPlugin::::initPluginFoswiki::Plugins::SmiliesPlugin::initPlugin
1311112µs112µsFoswiki::Plugins::SmiliesPlugin::::commonTagsHandlerFoswiki::Plugins::SmiliesPlugin::commonTagsHandler
11114µs32µsFoswiki::Plugins::SmiliesPlugin::::BEGIN@7Foswiki::Plugins::SmiliesPlugin::BEGIN@7
11110µs29µsFoswiki::Plugins::SmiliesPlugin::::BEGIN@16Foswiki::Plugins::SmiliesPlugin::BEGIN@16
11110µs51µsFoswiki::Plugins::SmiliesPlugin::::BEGIN@12Foswiki::Plugins::SmiliesPlugin::BEGIN@12
11110µs15µsFoswiki::Plugins::SmiliesPlugin::::BEGIN@8Foswiki::Plugins::SmiliesPlugin::BEGIN@8
1114µs4µsFoswiki::Plugins::SmiliesPlugin::::BEGIN@10Foswiki::Plugins::SmiliesPlugin::BEGIN@10
0000s0sFoswiki::Plugins::SmiliesPlugin::::_allSmiliesTableFoswiki::Plugins::SmiliesPlugin::_allSmiliesTable
0000s0sFoswiki::Plugins::SmiliesPlugin::::_renderSmilyFoswiki::Plugins::SmiliesPlugin::_renderSmily
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#
3# This plugin replaces smilies with small smilies bitmaps
4
5package Foswiki::Plugins::SmiliesPlugin;
6
7228µs251µs
# spent 32µs (14+19) within Foswiki::Plugins::SmiliesPlugin::BEGIN@7 which was called: # once (14µs+19µs) by Foswiki::Plugin::BEGIN@2.32 at line 7
use strict;
# spent 32µs making 1 call to Foswiki::Plugins::SmiliesPlugin::BEGIN@7 # spent 19µs making 1 call to strict::import
8224µs220µs
# spent 15µs (10+5) within Foswiki::Plugins::SmiliesPlugin::BEGIN@8 which was called: # once (10µs+5µs) by Foswiki::Plugin::BEGIN@2.32 at line 8
use warnings;
# spent 15µs making 1 call to Foswiki::Plugins::SmiliesPlugin::BEGIN@8 # spent 5µs making 1 call to warnings::import
9
10228µs14µs
# spent 4µs within Foswiki::Plugins::SmiliesPlugin::BEGIN@10 which was called: # once (4µs+0s) by Foswiki::Plugin::BEGIN@2.32 at line 10
use Foswiki::Func ();
# spent 4µs making 1 call to Foswiki::Plugins::SmiliesPlugin::BEGIN@10
11
1218µs141µs
# spent 51µs (10+41) within Foswiki::Plugins::SmiliesPlugin::BEGIN@12 which was called: # once (10µs+41µs) by Foswiki::Plugin::BEGIN@2.32 at line 14
use vars qw(
# spent 41µs making 1 call to vars::import
13 %smiliesUrls %smiliesEmotions
14123µs151µs $smiliesPubUrl $allPattern $smiliesFormat );
# spent 51µs making 1 call to Foswiki::Plugins::SmiliesPlugin::BEGIN@12
15
163512µs353µs
# spent 29µs (10+19) within Foswiki::Plugins::SmiliesPlugin::BEGIN@16 which was called: # once (10µs+19µs) by Foswiki::Plugin::BEGIN@2.32 at line 16
use version; our $VERSION = version->declare("v1.1.6");
# spent 29µs making 1 call to Foswiki::Plugins::SmiliesPlugin::BEGIN@16 # spent 19µs making 1 call to version::import # spent 5µs making 1 call to version::vxs::declare
171300nsour $RELEASE = '28 Nov 2012';
181200nsour $NO_PREFS_IN_TOPIC = 1;
191200nsour $SHORTDESCRIPTION = 'Render smilies like :-) as icons';
20
21
# spent 9.13ms (333µs+8.79) within Foswiki::Plugins::SmiliesPlugin::initPlugin which was called: # once (333µs+8.79ms) by Foswiki::Plugin::__ANON__[/var/www/foswiki11/lib/Foswiki/Plugin.pm:241] at line 234 of /var/www/foswiki11/lib/Foswiki/Plugin.pm
sub initPlugin {
2212µs my ( $topic, $web, $user, $installWeb ) = @_;
23
24 # Get plugin preferences
2513µs131µs $smiliesFormat = Foswiki::Func::getPreferencesValue('SMILIESPLUGIN_FORMAT')
# spent 31µs making 1 call to Foswiki::Func::getPreferencesValue
26 || '<img src="$url" alt="$tooltip" title="$tooltip" border="0" />';
27
2812µs148µs $topic = Foswiki::Func::getPreferencesValue('SMILIESPLUGIN_TOPIC')
# spent 48µs making 1 call to Foswiki::Func::getPreferencesValue
29 || "$installWeb.SmiliesPlugin";
30
311800ns $web = $installWeb;
3217µs if ( $topic =~ /(.+)\.(.+)/ ) {
3312µs $web = $1;
341800ns $topic = $2;
35 }
36
371900ns $allPattern = "(";
38133µs18.71ms foreach (
# spent 8.71ms making 1 call to Foswiki::Func::readTopicText
39 split( /\n/, Foswiki::Func::readTopicText( $web, $topic, undef, 1 ) ) )
40 {
41
42 # smilie url emotion
43100136µs if (
44m/^\s*\|\s*<nop>(?:\&nbsp\;)?([^\s|]+)\s*\|\s*%ATTACHURL%\/([^\s]+)\s*\|\s*"([^"|]+)"\s*\|\s*$/o
45 )
46 {
474731µs $allPattern .= "\Q$1\E|";
484753µs $smiliesUrls{$1} = $2;
494734µs $smiliesEmotions{$1} = $3;
50 }
51 }
5214µs $allPattern =~ s/\|$//o;
531900ns $allPattern .= ")";
5414µs12µs $smiliesPubUrl = Foswiki::Func::getPubUrlPath() . "/$web/$topic";
# spent 2µs making 1 call to Foswiki::Func::getPubUrlPath
55
56 # Initialization OK
5716µs return 1;
58}
59
60
# spent 112µs within Foswiki::Plugins::SmiliesPlugin::commonTagsHandler which was called 13 times, avg 9µs/call: # 13 times (112µs+0s) by Foswiki::Plugin::invoke at line 294 of /var/www/foswiki11/lib/Foswiki/Plugin.pm, avg 9µs/call
sub commonTagsHandler {
61
62 # my ( $text, $topic, $web ) = @_;
631396µs $_[0] =~ s/%SMILIES%/_allSmiliesTable()/geo;
64}
65
66
# spent 4.05ms within Foswiki::Plugins::SmiliesPlugin::preRenderingHandler which was called 5 times, avg 810µs/call: # 5 times (4.05ms+0s) by Foswiki::Plugin::invoke at line 294 of /var/www/foswiki11/lib/Foswiki/Plugin.pm, avg 810µs/call
sub preRenderingHandler {
67
68 # my ( $text, \%removed ) = @_;
69
7054.05ms $_[0] =~ s/(\s|^)$allPattern(?=\s|$)/_renderSmily($1,$2)/geo;
71}
72
73sub _renderSmily {
74 my ( $thePre, $theSmily ) = @_;
75
76 return $thePre unless $theSmily;
77
78 my $text = $thePre . $smiliesFormat;
79 $text =~ s/\$emoticon/$theSmily/go;
80 $text =~ s/\$tooltip/$smiliesEmotions{$theSmily}/go;
81 $text =~ s/\$url/$smiliesPubUrl\/$smiliesUrls{$theSmily}/go;
82
83 return $text;
84}
85
86sub _allSmiliesTable {
87 my $text = "| *What to Type* | *Graphic That Will Appear* | *Emotion* |\n";
88
89 foreach my $k (
90 sort { $smiliesEmotions{$b} cmp $smiliesEmotions{$a} }
91 keys %smiliesEmotions
92 )
93 {
94 $text .= "| <nop>$k | $k | " . $smiliesEmotions{$k} . " |\n";
95 }
96 return $text;
97}
98
9914µs1;
100__END__