* [PATCH 4/4] linkify: modify argument in place
2016-12-24 11:52 6% [PATCH 0/4] HTML micro-optimizations Eric Wong
@ 2016-12-24 11:52 7% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2016-12-24 11:52 UTC (permalink / raw)
To: meta
This results in over 1% speedup doing $MESSAGE_ID/T/ HTML
generation for a 368-message thread.
---
lib/PublicInbox/Linkify.pm | 17 +++++++----------
lib/PublicInbox/View.pm | 5 ++---
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/lib/PublicInbox/Linkify.pm b/lib/PublicInbox/Linkify.pm
index acd2a47..8e1728c 100644
--- a/lib/PublicInbox/Linkify.pm
+++ b/lib/PublicInbox/Linkify.pm
@@ -22,11 +22,10 @@ my $LINK_RE = qr{(\()?\b((?:ftps?|https?|nntps?|gopher)://
(?:\#[a-z0-9\-\._~!\$\&\';\(\)\*\+,;=:@/%\?]+)?
)}xi;
-sub new { bless {}, shift }
+sub new { bless {}, $_[0] }
sub linkify_1 {
- my ($self, $s) = @_;
- $s =~ s!$LINK_RE!
+ $_[1] =~ s!$LINK_RE!
my $beg = $1 || '';
my $url = $2;
my $end = '';
@@ -50,19 +49,17 @@ sub linkify_1 {
# only escape ampersands, others do not match LINK_RE
$url =~ s/&/&/g;
- $self->{$key} = $url;
+ $_[0]->{$key} = $url;
$beg . 'PI-LINK-'. $key . $end;
!ge;
- $s;
+ $_[1];
}
sub linkify_2 {
- my ($self, $s) = @_;
-
# Added "PI-LINK-" prefix to avoid false-positives on git commits
- $s =~ s!\bPI-LINK-([a-f0-9]{40})\b!
+ $_[1] =~ s!\bPI-LINK-([a-f0-9]{40})\b!
my $key = $1;
- my $url = $self->{$key};
+ my $url = $_[0]->{$key};
if (defined $url) {
"<a\nhref=\"$url\">$url</a>";
} else {
@@ -70,7 +67,7 @@ sub linkify_2 {
$key;
}
!ge;
- $s;
+ $_[1];
}
1;
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 39ca959..e4e9d7d 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -482,9 +482,8 @@ sub add_text_body {
flush_quote(\$s, $l, \@quot) if @quot;
# regular line, OK
- $cur = $l->linkify_1($cur);
- $cur = ascii_html($cur);
- $s .= $l->linkify_2($cur);
+ $l->linkify_1($cur);
+ $s .= $l->linkify_2(ascii_html($cur));
} else {
push @quot, $cur;
}
--
EW
^ permalink raw reply related [relevance 7%]
* [PATCH 0/4] HTML micro-optimizations
@ 2016-12-24 11:52 6% Eric Wong
2016-12-24 11:52 7% ` [PATCH 4/4] linkify: modify argument in place Eric Wong
0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2016-12-24 11:52 UTC (permalink / raw)
To: meta
Testing with a horriblely long 368-message thread on git@vger,
I've found some minor tweaks which give us some tiny speedups.
Unfortunately, these are minor and new features may end up
costing us more in the future. Further optimizations are
needed.
Eric Wong (4):
view: remove unused parameter
view: stop chomping off whitespace at ends of messages
view: do not modify array during iteration
linkify: modify argument in place
lib/PublicInbox/Linkify.pm | 17 +++++++----------
lib/PublicInbox/View.pm | 21 +++++++++------------
2 files changed, 16 insertions(+), 22 deletions(-)
^ permalink raw reply [relevance 6%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2016-12-24 11:52 6% [PATCH 0/4] HTML micro-optimizations Eric Wong
2016-12-24 11:52 7% ` [PATCH 4/4] linkify: modify argument in place Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).