1
0
mirror of https://github.com/golang/go synced 2024-09-30 11:18:33 -06:00
go/src/regexp
Aliaksandr Valialkin bea39e63ec regexp: reduce mallocs in Regexp.Find* and Regexp.ReplaceAll*.
This improves Regexp.Find* and Regexp.ReplaceAll* speed:

name                  old time/op    new time/op    delta
Find-4                   345ns ± 1%     314ns ± 1%    -8.94%    (p=0.000 n=9+8)
FindString-4             341ns ± 1%     308ns ± 0%    -9.85%   (p=0.000 n=10+9)
FindSubmatch-4           440ns ± 1%     404ns ± 0%    -8.27%   (p=0.000 n=10+8)
FindStringSubmatch-4     426ns ± 0%     387ns ± 0%    -9.07%   (p=0.000 n=10+9)
ReplaceAll-4            1.75µs ± 1%    1.67µs ± 0%    -4.45%   (p=0.000 n=9+10)

name                  old alloc/op   new alloc/op   delta
Find-4                   16.0B ± 0%     0.0B ±NaN%  -100.00%  (p=0.000 n=10+10)
FindString-4             16.0B ± 0%     0.0B ±NaN%  -100.00%  (p=0.000 n=10+10)
FindSubmatch-4           80.0B ± 0%     48.0B ± 0%   -40.00%  (p=0.000 n=10+10)
FindStringSubmatch-4     64.0B ± 0%     32.0B ± 0%   -50.00%  (p=0.000 n=10+10)
ReplaceAll-4              152B ± 0%      104B ± 0%   -31.58%  (p=0.000 n=10+10)

name                  old allocs/op  new allocs/op  delta
Find-4                    1.00 ± 0%     0.00 ±NaN%  -100.00%  (p=0.000 n=10+10)
FindString-4              1.00 ± 0%     0.00 ±NaN%  -100.00%  (p=0.000 n=10+10)
FindSubmatch-4            2.00 ± 0%      1.00 ± 0%   -50.00%  (p=0.000 n=10+10)
FindStringSubmatch-4      2.00 ± 0%      1.00 ± 0%   -50.00%  (p=0.000 n=10+10)
ReplaceAll-4              8.00 ± 0%      5.00 ± 0%   -37.50%  (p=0.000 n=10+10)

Fixes #15643

Change-Id: I594fe51172373e2adb98d1d25c76ca2cde54ff48
Reviewed-on: https://go-review.googlesource.com/23030
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-09-06 17:04:31 +00:00
..
syntax unicode: upgrade to version 9.0.0 2016-06-28 15:08:11 +00:00
testdata regexp/syntax: fix factoring of common prefixes in alternations 2016-01-08 16:41:46 +00:00
all_test.go regexp: reduce mallocs in Regexp.Find* and Regexp.ReplaceAll*. 2016-09-06 17:04:31 +00:00
backtrack.go all: delete dead non-test code 2016-03-25 06:28:13 +00:00
example_test.go
exec2_test.go
exec_test.go regexp: use Run for benchmark 2016-06-01 10:28:01 +00:00
exec.go regexp: reduce mallocs in Regexp.Find* and Regexp.ReplaceAll*. 2016-09-06 17:04:31 +00:00
find_test.go
onepass_test.go all: delete dead test code 2016-03-21 07:10:08 +00:00
onepass.go all: remove unnecessary type conversions 2016-04-15 07:31:45 +00:00
regexp.go regexp: reduce mallocs in Regexp.Find* and Regexp.ReplaceAll*. 2016-09-06 17:04:31 +00:00