Boost logo

Boost :

Subject: Re: [boost] [xpressive] Performance Tuning?
From: OvermindDL1 (overminddl1_at_[hidden])
Date: 2009-07-19 05:28:39

On Sun, Jul 19, 2009 at 2:29 AM, John Bytheway<jbytheway+boost_at_[hidden]> wrote:
> OvermindDL1 wrote:
>> I just changed the file to use spirit for parsing where I had used
>> lexical_cast got very different timings for xpressive now, so now,
>> with xpressive using a bit of spirit I get:
>> Loop count:  10000000
>> Parsing:  42.5
>> xpressive:  15.4841
>> spirit-quick(static):  3.01117
>> spirit-quick_new(threadsafe):  3.10548
>> spirit-grammar(threadsafe/reusable):  3.81694
>> Vast increase, 3x faster xpressive is now.
>> Also, how do you fix that rather bloody massive warning about
>> double->int64 truncation?
>> I also changed all int64_t to boost::long_long_type since they are the
>> same thing anyway (on 32-bit at least?), as well as it being
>> multi-platform unlike int64_t.
>> My changed file is attached.  Do not know if this is considered
>> cheating now that xpressive is using some spirit now.  ;-)
> That one doesn't compile for me.  On line 402:
> boost::spirit::qi::parse(va.begin(), va.end(),
> boost::spirit::double_[boost::phoenix::ref(value)]);
> I get
> no instance of overloaded function "boost::spirit::qi::parse" matches
> the argument list
> (and the same on all the similar lines)
> and indeed I see can't see an appropriate overload in the spirit headers
> (in boost trunk), but it's hard to be sure since there are so many
> functions called parse!

You are running Boost Trunk? Compiles fine here in MSVC, and I last
synced to trunk less then a week ago.

Boost list run by bdawes at, gregod at, cpdaniel at, john at