Boost logo

Boost :

Subject: Re: [boost] [xpressive] Performance Tuning?
From: Edward Grace (ej.grace_at_[hidden])
Date: 2009-07-20 15:40:08

>> chrono_start = chrono();
>> while ( double( chrono_wall() - chrono_wall_start ) <
>> chrono_wall_scale*4.0);
>> chrono_end = chrono();
>> I'm now doubly confused as it appears to be complaining about the
>> return
>> type of std::clock, (the default wall-clock timer). Maybe I can
>> get my
>> hands on a windows machine and compiler tomorrow....
> Edward, just a compliment (for now): what you are doing is cool!
> I'm starting to be an eager supporter.

Always good to hear.... ;-)

After a mammoth effort and much code rejigging I've got it to not
only compile, but work on Windows with MSVC8! In fairness to the MS
compiler it did spot some subtle run-time errors that I was getting
away with just fine with g++. I've had to rip out parts that used
my home brew striding_iterator since there's no way to avoid
dereferencing one past the end of the end.

Similarly I've had to give up on keeping all the time deltas as
integer types in order to cope with the Windows .QuadPart approach.
If you refer back to the discussion I was having with OverminD1
(thanks a lot for your efforts) you'll see it was causing some grief
when trying to compile on Windows. As a consequence the timer
appears to be less sensitive, so may not pick out differences < 0.5%,
but frankly who cares? ;-)

Anyhow, enough rambling:

The new timing code (with a better PDF containing docs) is:


Those of you watching in black and white need to set up MSVC and
compile example_timer.cpp. Everyone watching in colour need only do
the usual:

   ./configure; make; make install


The uint_parser example that utilises the above is:


I wait with baited breath.


"No more boom and bust." -- Dr. J. G. Brown, 1997

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