By default, RE2J does not resolve all the groups when performing a match operation, rather it only resolves groups when Matcher.group(*) is called. This results in input being processed twice. Once during find() and then again during group(*). This increase the latency when Matcher.find() and Matcher.group(*) are called in succession.
The request here is to allow resolving all the regex groups when Matcher.find() is called, such that when Matcher.group(*) is called, the groups can be served from cache.
Pull Request and Performance results are here : #178
By default, RE2J does not resolve all the groups when performing a match operation, rather it only resolves groups when
Matcher.group(*)is called. This results in input being processed twice. Once during find() and then again during group(*). This increase the latency whenMatcher.find()andMatcher.group(*)are called in succession.The request here is to allow resolving all the regex groups when
Matcher.find()is called, such that whenMatcher.group(*)is called, the groups can be served from cache.Pull Request and Performance results are here : #178