mirror of
https://github.com/golang/go
synced 2024-11-16 22:04:50 -07:00
go/types: use internal/lazyregexp for goVersionRx
With benchinit, we see a noticeable improvement in init times: name old time/op new time/op delta GoTypes 83.4µs ± 0% 43.7µs ± 1% -47.57% (p=0.029 n=4+4) name old alloc/op new alloc/op delta GoTypes 26.5kB ± 0% 18.8kB ± 0% -29.15% (p=0.029 n=4+4) name old allocs/op new allocs/op delta GoTypes 238 ± 0% 154 ± 0% -35.29% (p=0.029 n=4+4) Port the same change to cmd/compile/internal/types and types2. Updates #26775. Change-Id: Ia1f7c4a4ce9a22d66e2aa9c9b9c341036993adca Reviewed-on: https://go-review.googlesource.com/c/go/+/460544 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Robert Findley <rfindley@google.com> Run-TryBot: Robert Findley <rfindley@google.com> Reviewed-by: Robert Griesemer <gri@google.com>
This commit is contained in:
parent
8259ac4986
commit
c641d48afd
@ -7,8 +7,8 @@ package types
|
||||
import (
|
||||
"fmt"
|
||||
"internal/goversion"
|
||||
"internal/lazyregexp"
|
||||
"log"
|
||||
"regexp"
|
||||
"strconv"
|
||||
|
||||
"cmd/compile/internal/base"
|
||||
@ -81,4 +81,4 @@ func currentLang() string {
|
||||
|
||||
// goVersionRE is a regular expression that matches the valid
|
||||
// arguments to the -lang flag.
|
||||
var goVersionRE = regexp.MustCompile(`^go([1-9]\d*)\.(0|[1-9]\d*)$`)
|
||||
var goVersionRE = lazyregexp.New(`^go([1-9]\d*)\.(0|[1-9]\d*)$`)
|
||||
|
@ -7,7 +7,7 @@ package types2
|
||||
import (
|
||||
"cmd/compile/internal/syntax"
|
||||
"fmt"
|
||||
"regexp"
|
||||
"internal/lazyregexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
@ -78,4 +78,4 @@ func parseGoVersion(s string) (v version, err error) {
|
||||
}
|
||||
|
||||
// goVersionRx matches a Go version string, e.g. "go1.12".
|
||||
var goVersionRx = regexp.MustCompile(`^go([1-9][0-9]*)\.(0|[1-9][0-9]*)$`)
|
||||
var goVersionRx = lazyregexp.New(`^go([1-9][0-9]*)\.(0|[1-9][0-9]*)$`)
|
||||
|
@ -278,7 +278,7 @@ var depsRules = `
|
||||
math/big, go/token
|
||||
< go/constant;
|
||||
|
||||
container/heap, go/constant, go/parser, internal/types/errors, regexp
|
||||
container/heap, go/constant, go/parser, internal/types/errors, internal/lazyregexp
|
||||
< go/types;
|
||||
|
||||
FMT, internal/goexperiment
|
||||
|
@ -8,8 +8,8 @@ import (
|
||||
"fmt"
|
||||
"go/ast"
|
||||
"go/token"
|
||||
"internal/lazyregexp"
|
||||
. "internal/types/errors"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
@ -80,4 +80,4 @@ func parseGoVersion(s string) (v version, err error) {
|
||||
}
|
||||
|
||||
// goVersionRx matches a Go version string, e.g. "go1.12".
|
||||
var goVersionRx = regexp.MustCompile(`^go([1-9]\d*)\.(0|[1-9]\d*)$`)
|
||||
var goVersionRx = lazyregexp.New(`^go([1-9]\d*)\.(0|[1-9]\d*)$`)
|
||||
|
Loading…
Reference in New Issue
Block a user