Josh Bleecher Snyder
c97e576576
html/template: use strings.Builder
...
...and size initial buffers more accurately.
Easy pickings only. More might remain.
name old time/op new time/op delta
CSSEscaper-8 1.17µs ± 1% 0.80µs ± 2% -31.55% (p=0.000 n=44+48)
CSSEscaperNoSpecials-8 205ns ± 2% 204ns ± 3% -0.73% (p=0.014 n=46+49)
DecodeCSS-8 438ns ± 2% 436ns ± 2% ~ (p=0.099 n=48+47)
DecodeCSSNoSpecials-8 6.11ns ± 3% 5.93ns ± 3% -2.85% (p=0.000 n=50+48)
CSSValueFilter-8 149ns ± 0% 145ns ± 0% -2.68% (p=0.000 n=32+35)
CSSValueFilterOk-8 238ns ± 2% 234ns ± 2% -1.40% (p=0.000 n=49+47)
EscapedExecute-8 2.53µs ± 2% 2.55µs ± 1% +0.87% (p=0.000 n=48+49)
HTMLNospaceEscaper-8 1.35µs ± 2% 0.92µs ± 1% -31.74% (p=0.000 n=48+48)
HTMLNospaceEscaperNoSpecials-8 278ns ± 2% 263ns ± 2% -5.17% (p=0.000 n=47+49)
StripTags-8 778ns ± 2% 786ns ± 1% +0.96% (p=0.000 n=46+47)
StripTagsNoSpecials-8 84.2ns ± 1% 84.1ns ± 1% ~ (p=0.300 n=48+48)
JSValEscaperWithNum-8 506ns ± 2% 486ns ± 3% -3.82% (p=0.000 n=47+45)
JSValEscaperWithStr-8 1.61µs ± 1% 1.64µs ± 1% +1.75% (p=0.000 n=44+49)
JSValEscaperWithStrNoSpecials-8 548ns ± 2% 552ns ± 2% +0.78% (p=0.000 n=48+46)
JSValEscaperWithObj-8 1.91µs ± 2% 1.87µs ± 1% -2.08% (p=0.000 n=49+47)
JSValEscaperWithObjNoSpecials-8 735ns ± 2% 742ns ± 2% +1.01% (p=0.000 n=47+49)
JSStrEscaperNoSpecials-8 228ns ± 4% 211ns ± 3% -7.53% (p=0.000 n=50+49)
JSStrEscaper-8 1.11µs ± 1% 0.78µs ± 1% -29.94% (p=0.000 n=48+48)
JSRegexpEscaperNoSpecials-8 214ns ± 2% 212ns ± 3% -1.12% (p=0.000 n=50+49)
JSRegexpEscaper-8 1.17µs ± 0% 0.79µs ± 1% -31.92% (p=0.000 n=48+47)
TemplateSpecialTags-8 172µs ± 1% 172µs ± 1% ~ (p=0.976 n=48+47)
URLEscaper-8 1.88µs ± 2% 1.87µs ± 2% -0.56% (p=0.001 n=49+49)
URLEscaperNoSpecials-8 162ns ± 1% 169ns ± 1% +3.76% (p=0.000 n=49+50)
URLNormalizer-8 1.29µs ± 3% 1.29µs ± 2% -0.37% (p=0.041 n=48+48)
URLNormalizerNoSpecials-8 185ns ± 1% 186ns ± 1% +0.15% (p=0.013 n=49+49)
SrcsetFilter-8 616ns ± 1% 618ns ± 1% +0.36% (p=0.000 n=46+46)
SrcsetFilterNoSpecials-8 359ns ± 0% 352ns ± 0% -1.93% (p=0.000 n=40+43)
[Geo mean] 560ns 525ns -6.17%
name old alloc/op new alloc/op delta
CSSEscaper-8 672B ± 0% 336B ± 0% -50.00% (p=0.000 n=50+50)
CSSEscaperNoSpecials-8 0.00B 0.00B ~ (all equal)
DecodeCSS-8 160B ± 0% 160B ± 0% ~ (all equal)
DecodeCSSNoSpecials-8 0.00B 0.00B ~ (all equal)
CSSValueFilter-8 96.0B ± 0% 96.0B ± 0% ~ (all equal)
CSSValueFilterOk-8 48.0B ± 0% 48.0B ± 0% ~ (all equal)
EscapedExecute-8 688B ± 0% 624B ± 0% -9.30% (p=0.000 n=50+50)
HTMLNospaceEscaper-8 752B ± 0% 368B ± 0% -51.06% (p=0.000 n=50+50)
HTMLNospaceEscaperNoSpecials-8 48.0B ± 0% 32.0B ± 0% -33.33% (p=0.000 n=50+50)
StripTags-8 224B ± 0% 224B ± 0% ~ (all equal)
StripTagsNoSpecials-8 112B ± 0% 112B ± 0% ~ (all equal)
JSValEscaperWithNum-8 96.0B ± 0% 40.0B ± 0% -58.33% (p=0.000 n=50+50)
JSValEscaperWithStr-8 384B ± 0% 384B ± 0% ~ (all equal)
JSValEscaperWithStrNoSpecials-8 96.0B ± 0% 96.0B ± 0% ~ (all equal)
JSValEscaperWithObj-8 448B ± 0% 448B ± 0% ~ (all equal)
JSValEscaperWithObjNoSpecials-8 160B ± 0% 160B ± 0% ~ (all equal)
JSStrEscaperNoSpecials-8 0.00B 0.00B ~ (all equal)
JSStrEscaper-8 672B ± 0% 336B ± 0% -50.00% (p=0.000 n=50+50)
JSRegexpEscaperNoSpecials-8 0.00B 0.00B ~ (all equal)
JSRegexpEscaper-8 672B ± 0% 336B ± 0% -50.00% (p=0.000 n=50+50)
TemplateSpecialTags-8 48.0kB ± 0% 47.9kB ± 0% -0.13% (p=0.000 n=50+48)
URLEscaper-8 336B ± 0% 336B ± 0% ~ (all equal)
URLEscaperNoSpecials-8 112B ± 0% 112B ± 0% ~ (all equal)
URLNormalizer-8 176B ± 0% 176B ± 0% ~ (all equal)
URLNormalizerNoSpecials-8 112B ± 0% 112B ± 0% ~ (all equal)
SrcsetFilter-8 160B ± 0% 160B ± 0% ~ (all equal)
SrcsetFilterNoSpecials-8 160B ± 0% 160B ± 0% ~ (all equal)
[Geo mean] 259B 216B -16.60%
name old allocs/op new allocs/op delta
CSSEscaper-8 4.00 ± 0% 2.00 ± 0% -50.00% (p=0.000 n=50+50)
CSSEscaperNoSpecials-8 0.00 0.00 ~ (all equal)
DecodeCSS-8 1.00 ± 0% 1.00 ± 0% ~ (all equal)
DecodeCSSNoSpecials-8 0.00 0.00 ~ (all equal)
CSSValueFilter-8 2.00 ± 0% 2.00 ± 0% ~ (all equal)
CSSValueFilterOk-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
EscapedExecute-8 18.0 ± 0% 18.0 ± 0% ~ (all equal)
HTMLNospaceEscaper-8 5.00 ± 0% 3.00 ± 0% -40.00% (p=0.000 n=50+50)
HTMLNospaceEscaperNoSpecials-8 1.00 ± 0% 1.00 ± 0% ~ (all equal)
StripTags-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
StripTagsNoSpecials-8 2.00 ± 0% 2.00 ± 0% ~ (all equal)
JSValEscaperWithNum-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
JSValEscaperWithStr-8 2.00 ± 0% 2.00 ± 0% ~ (all equal)
JSValEscaperWithStrNoSpecials-8 2.00 ± 0% 2.00 ± 0% ~ (all equal)
JSValEscaperWithObj-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
JSValEscaperWithObjNoSpecials-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
JSStrEscaperNoSpecials-8 0.00 0.00 ~ (all equal)
JSStrEscaper-8 4.00 ± 0% 2.00 ± 0% -50.00% (p=0.000 n=50+50)
JSRegexpEscaperNoSpecials-8 0.00 0.00 ~ (all equal)
JSRegexpEscaper-8 4.00 ± 0% 2.00 ± 0% -50.00% (p=0.000 n=50+50)
TemplateSpecialTags-8 185 ± 0% 185 ± 0% ~ (all equal)
URLEscaper-8 4.00 ± 0% 4.00 ± 0% ~ (all equal)
URLEscaperNoSpecials-8 2.00 ± 0% 2.00 ± 0% ~ (all equal)
URLNormalizer-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
URLNormalizerNoSpecials-8 2.00 ± 0% 2.00 ± 0% ~ (all equal)
SrcsetFilter-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
SrcsetFilterNoSpecials-8 3.00 ± 0% 3.00 ± 0% ~ (all equal)
[Geo mean] 3.41 3.05 -10.65%
Change-Id: I809ea56495ce1881656af7e24621448ab64b449a
Reviewed-on: https://go-review.googlesource.com/c/155919
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-26 20:12:09 +00:00
Tim Cooper
161874da2a
all: update comment URLs from HTTP to HTTPS, where possible
...
Each URL was manually verified to ensure it did not serve up incorrect
content.
Change-Id: I4dc846227af95a73ee9a3074d0c379ff0fa955df
Reviewed-on: https://go-review.googlesource.com/115798
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
2018-06-01 21:52:00 +00:00
Martin Möhrmann
012557b376
all: replace magic 0x80 with named constant utf8.RuneSelf
...
Change-Id: Id1c2e8e9d60588de866e8b6ca59cc83dd28f848f
Reviewed-on: https://go-review.googlesource.com/21756
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-04-10 15:15:57 +00:00
Dominik Honnef
1cb3044c9f
all: use bytes.Equal, bytes.Contains and strings.Contains
...
Change-Id: Iba82a5bd3846f7ab038cc10ec72ff6bcd2c0b484
Reviewed-on: https://go-review.googlesource.com/21377
Run-TryBot: Dave Cheney <dave@cheney.net>
Reviewed-by: Dave Cheney <dave@cheney.net>
2016-04-01 02:05:01 +00:00
Didier Spezia
a1c1a763bc
html/template: fix string iteration in replacement operations
...
In css, js, and html, the replacement operations are implemented
by iterating on strings (rune by rune). The for/range
statement is used. The length of the rune is required
and added to the index to properly slice the string.
This is potentially wrong because there is a discrepancy between
the result of utf8.RuneLen and the increment of the index
(set by the for/range statement). For invalid strings,
utf8.RuneLen('\ufffd') == 3, while the index is incremented
only by 1 byte.
htmlReplacer triggers a panic at slicing time for some
invalid strings.
Use a more robust iteration mechanism based on
utf8.DecodeRuneInString, and make sure the same
pattern is used for all similar functions in this
package.
Fixes #10799
Change-Id: Ibad3857b2819435d9fa564f06fc2ca8774102841
Reviewed-on: https://go-review.googlesource.com/10105
Reviewed-by: Rob Pike <r@golang.org>
2015-05-19 22:45:50 +00:00
Russ Cox
c007ce824d
build: move package sources from src/pkg to src
...
Preparation was in CL 134570043.
This CL contains only the effect of 'hg mv src/pkg/* src'.
For more about the move, see golang.org/s/go14nopkg.
2014-09-08 00:08:51 -04:00