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#boost_xpressive.user_s_guide.semantic_actions_and_user_defined_assertions.referring_to_non_local_variables--
Eric Niebler
BoostPro Computing
http://www.boostpro.com_______________________________________________
Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost