
Stewart, Robert wrote:
Dave Jenkins wrote:
Each call to parse() is constructing the sregex variables. If you make them static or move them out of the loop, it should help a lot. Thanks, but see my reply to Eric's. While that would help with the benchmark performance, the nature of the function I'm testing means I can't do that otherwise. How about making them static const? That should be thread safe.
I'm sorry, I read your original suggestion as being the same as Eric's: reuse the match_results. Unfortunately, the semantic actions reference local variables, so I don't think I can make the sregex's static (please correct me if I'm wrong, but I can't see how multiple parallel invocations of the function could reference separate stack variables from static sregex's). I did make the sregex's const; that appears to have improved performance a bit.
You can still make the regex objects static const and use placeholders in the semantic actions. See the following section: http://www.boost.org/doc/libs/1_39_0/doc/html/xpressive/user_s_guide.html#bo... -- Eric Niebler BoostPro Computing http://www.boostpro.com