Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
transformers/grep: avoid allocations with `(*regexp.Regexp).MatchStri…
…ng` (#1416) We should use `(*regexp.Regexp).MatchString` instead of `(*regexp.Regexp).Match([]byte(...))` when matching string to avoid unnecessary `[]byte` conversions and reduce allocations. Example benchmark: var grepRegex = regexp.MustCompile("foo.*") func BenchmarkMatch(b *testing.B) { for i := 0; i < b.N; i++ { if match := grepRegex.Match([]byte("foo bar baz")); !match { b.Fail() } } } func BenchmarkMatchString(b *testing.B) { for i := 0; i < b.N; i++ { if match := grepRegex.MatchString("foo bar baz"); !match { b.Fail() } } } goos: linux goarch: amd64 pkg: github.com/johnkerl/miller/pkg/transformers cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics BenchmarkMatch-16 5700908 210.3 ns/op 16 B/op 1 allocs/op BenchmarkMatchString-16 8006731 156.4 ns/op 0 B/op 0 allocs/op PASS ok github.com/johnkerl/miller/pkg/transformers 2.857s Signed-off-by: Eng Zer Jun <[email protected]>
- Loading branch information