]> Cypherpunks repositories - gostls13.git/commitdiff
regexp: add the Fanout benchmark
authorMichael Matloob <matloob@golang.org>
Mon, 11 Jul 2016 20:59:03 +0000 (14:59 -0600)
committerMichael Matloob <matloob@golang.org>
Mon, 11 Jul 2016 21:03:09 +0000 (21:03 +0000)
This is a copy of the "FANOUT" benchmark recently added to RE2 with the
following comment:

    // This has quite a high degree of fanout.
    // NFA execution will be particularly slow.

Most of the benchmarks on the regexp package have very little fanout and
are designed for comparing the regexp package's NFA with backtracking
engines found in other regular expression libraries. This benchmark
exercises the performance of the NFA on expressions with high fanout.

Change-Id: Ie9c8e3bbeffeb1fe9fb90474ddd19e53f2f57a52
Reviewed-on: https://go-review.googlesource.com/24846
Reviewed-by: Andrew Gerrand <adg@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/regexp/exec_test.go

index 69f187e38a8e099fff66ff8a2d675454d03ecebc..576862860a95eb7ea11e9f8bbbdb929f1e873d5c 100644 (file)
@@ -682,6 +682,7 @@ var benchData = []struct{ name, re string }{
        {"Medium", "[XYZ]ABCDEFGHIJKLMNOPQRSTUVWXYZ$"},
        {"Hard", "[ -~]*ABCDEFGHIJKLMNOPQRSTUVWXYZ$"},
        {"Hard1", "ABCD|CDEF|EFGH|GHIJ|IJKL|KLMN|MNOP|OPQR|QRST|STUV|UVWX|WXYZ"},
+       {"Fanout", "(?:[\\x{80}-\\x{10FFFF}]?){100}[\\x{80}-\\x{10FFFF}]"},
 }
 
 var benchSizes = []struct {