[xpressive] Performance Tuning?

View: New views
20 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 | Next >

Re: [xpressive] Performance Tuning?

by Edward Grace :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>
> Sorry for the noise, but the only error I could not get rid of with
> single-line edits to your files is:
> 1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing
> \other_includes\ejg/timer.cpp(117)
> : error C2676: binary '-' : 'ticks' does not define this operator or a
> conversion to a type acceptable to the predefined operator

The while statement?

     chrono_start = chrono();
     while (chrono_wall()-chrono_wall_start < chrono_wall_scale*4);
     chrono_end = chrono();

Hmm.  Depending on what the type of 'ticks' from cycle.h is (that's  
what you're using right) that should just be a large integer type.  
Perhaps try with the util::high_resolution_timer, which is of type  
double().

Otherwise do you think the compiler is getting confused between the  
name of the template parameter 'ticks' and the type 'ticks'?

-ed

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

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Edward Grace :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 20 Jul 2009, at 02:07, Steven Watanabe wrote:

> AMDG
>
> Edward Grace wrote:
>>> 1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing
>>> \other_includes\ejg/timer.cpp(273)
>>>
>>> : warning C4003: not enough actual parameters for macro 'max'
>>
>>   time_raw_atom( _Operation f)  {
>>     ticks t0(0),t1(0),delta(std::numeric_limits<ticks>::max());
>>
>> Ok.  I bet MSVC (that's what you're using right) defines macros  
>> called
>> "min" and "max".  I guess that's what happens when one sips from the
>> teat of the devil.  A couple of undefs perhaps..
>
> Strictly speaking it's windows.h not msvc that #define's min and max.
> See
> http://www.boost.org/development/ 
> requirements.html#Design_and_Programming
> for acceptable workarounds.

Thanks.  Cap duly doffed.

-ed

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

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Edward Grace :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> And yea yea, I would like to use GCC to compile, but I currently have
> sold my soul to the Visual Assist plugin for Visual Studio.  If any
> IDE

IDE?  Whassat? What's wrong with........


....emacs?  ;-)

(back on topic now)

-ed
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Edward Grace :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi OverminDL1,

> Sorry for the noise, but the only error I could not get rid of with
> single-line edits to your files is:
> 1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing
> \other_includes\ejg/timer.cpp(117)
> : error C2676: binary '-' : 'ticks' does not define this operator or a
> conversion to a type acceptable to the predefined operator
> 1>        R:\Programming_Projects\Spirit_Price
> \ejg_uint_parser_timing\other_includes\ejg/timer.cpp(109)
> : while compiling class template member function 'void
> ejg::generic_timer<ticks>::calibrate_seconds(void)'

A bit of a stab in the dark, perhaps change the region around  
timer.cpp(109) to

     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....

-ed



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

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Joel de Guzman-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Edward Grace wrote:

>
> Hi OverminDL1,
>
>> Sorry for the noise, but the only error I could not get rid of with
>> single-line edits to your files is:
>> 1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing\other_includes\ejg/timer.cpp(117)
>>
>> : error C2676: binary '-' : 'ticks' does not define this operator or a
>> conversion to a type acceptable to the predefined operator
>> 1>        
>> R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing\other_includes\ejg/timer.cpp(109)
>>
>> : while compiling class template member function 'void
>> ejg::generic_timer<ticks>::calibrate_seconds(void)'
>
> A bit of a stab in the dark, perhaps change the region around
> timer.cpp(109) to
>
>     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.

Regards,
--
Joel de Guzman
http://www.boostpro.com
http://spirit.sf.net

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Joel de Guzman-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Edward Grace wrote:

> N.B. The final timing of qi_parse against itself is zero percent within
> the nominal precision.  At first I thought the 1000% speedup of qi_parse
> was a fake due to some compiler shenanigans.  Now I don't think so.  I
> think it really is that much faster for small buffers!  Note that this
> timing experiment took ~6mins.

[...]

> Same results - actually better since the experiment is quicker and the
> 95th percentile range is therefore narrower.  Obviously I'm suspicious
> that something funny's going on - would you expect it to be capable of
> being ~10x faster?

Interesting...

It seems that spatial locality strongly favors optimized Spirit
code very well -- best when the data structure can reside fully
in the cache. Try bumping the size incrementally and I expect a
big dip in performance at a certain point.

Regards,
--
Joel de Guzman
http://www.boostpro.com
http://spirit.sf.net

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by OvermindDL1 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sun, Jul 19, 2009 at 7:12 PM, Edward Grace<ej.grace@...> wrote:
>> And yea yea, I would like to use GCC to compile, but I currently have
>> sold my soul to the Visual Assist plugin for Visual Studio.  If any
>> IDE
>
> IDE?  Whassat? What's wrong with........
>
>
> ....emacs?  ;-)

Heh, believe me, it does no where near.  Visual Assist parses out the
files, it know what are macros, templates, everything, it guesses most
of the code that I am writing for me, it literally puts in probably
80% of what I type, it is intelligent and very well made (once you
know how it thinks).  Emacs could never compare as-is.  Believe me,
once you use it for a month, you would be addicted.  Most, if not all
major programming companies use it.  :p


On Sun, Jul 19, 2009 at 7:12 PM, Edward Grace<ej.grace@...> wrote:
> (back on topic now)

Er, yes, right...



On Sun, Jul 19, 2009 at 7:10 PM, Edward Grace<ej.grace@...> wrote:

>> Sorry for the noise, but the only error I could not get rid of with
>> single-line edits to your files is:
>>
>> 1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing\other_includes\ejg/timer.cpp(117)
>> : error C2676: binary '-' : 'ticks' does not define this operator or a
>> conversion to a type acceptable to the predefined operator
>
> The while statement?
>
>    chrono_start = chrono();
>    while (chrono_wall()-chrono_wall_start < chrono_wall_scale*4);
>    chrono_end = chrono();
>
> Hmm.  Depending on what the type of 'ticks' from cycle.h is (that's what
> you're using right) that should just be a large integer type.  Perhaps try
> with the util::high_resolution_timer, which is of type double().
According to Visual Assist, ticks is of type LARGE_INTEGER, a union
type with 4 parts and a max size of 64-bits, it has no operator-
defined, hence you would need to reference an internal part, it looks
like QuadPart (like chrono_wall().QuadPart) would work, but that does
not fit into your design.  I added this to the proper place in the
cycle.h file:
LARGE_INTEGER operator-(LARGE_INTEGER l, LARGE_INTEGER r)
{
        LARGE_INTEGER res;
        res.QuadPart = l.QuadPart - r.QuadPart;
        return res;
}

Now it says:
1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing\other_includes\ejg/timer.cpp(117)
: error C2440: '<function-style-cast>' : cannot convert from
'LARGE_INTEGER' to 'double'
1>        No user-defined-conversion operator available that can
perform this conversion, or the operator cannot be called
1>        R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing\other_includes\ejg/timer.cpp(109)
: while compiling class template member function 'void
ejg::generic_timer<ticks>::calibrate_seconds(void)'
1>        with
1>        [
1>            ticks=ticks
1>        ]
1>        .\ejg_uint_parser.cpp(133) : see reference to class template
instantiation 'ejg::generic_timer<ticks>' being compiled
1>        with
1>        [
1>            ticks=ticks
1>        ]
1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing\other_includes\ejg/timer.cpp(239)
: warning C4267: '=' : conversion from 'size_t' to 'unsigned int',
possible loss of data
1>        .\ejg_uint_parser.cpp(154) : see reference to function
template instantiation 'void
ejg::generic_timer<ticks>::measure_percentage_speedup<void(__cdecl
*)(void),void(__cdecl *)(void)>(_OperationA,_OperationB,double
&,double &,double &)' being compiled
1>        with
1>        [
1>            ticks=ticks,
1>            _OperationA=void (__cdecl *)(void),
1>            _OperationB=void (__cdecl *)(void)
1>        ]
1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing\other_includes\ejg/timer.cpp(246)
: warning C4267: '=' : conversion from 'size_t' to 'unsigned int',
possible loss of data

So the union has no conversion to double, of course.  Trying

What do you want me to do with util::high_resolution_timer?


On Sun, Jul 19, 2009 at 7:10 PM, Edward Grace<ej.grace@...> wrote:
> Otherwise do you think the compiler is getting confused between the name of
> the template parameter 'ticks' and the type 'ticks'?

Hmm, do not know, I never duplicate names like that so have not run into that...

On Sun, Jul 19, 2009 at 9:51 PM, Joel de
Guzman<joel@...> wrote:
> Edward, just a compliment (for now): what you are doing is cool!
> I'm starting to be an eager supporter.

I have to say that I like the design of your timer library as well,
looks to be very useful.  :)
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Edward Grace :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>> Hmm.  Depending on what the type of 'ticks' from cycle.h is  
>> (that's what
>> you're using right) that should just be a large integer type.  
>> Perhaps try
>> with the util::high_resolution_timer, which is of type double().
> According to Visual Assist, ticks is of type LARGE_INTEGER, a union
> type with 4 parts and a max size of 64-bits, it has no operator-
> defined, hence you would need to reference an internal part, it looks
> like QuadPart (like chrono_wall().QuadPart) would work, but that does
> not fit into your design.  I added this to the proper place in the
> cycle.h file:
> LARGE_INTEGER operator-(LARGE_INTEGER l, LARGE_INTEGER r)
> {
> LARGE_INTEGER res;
> res.QuadPart = l.QuadPart - r.QuadPart;
> return res;
> }
>
> Now it says:
> 1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing
> \other_includes\ejg/timer.cpp(117)
> : error C2440: '<function-style-cast>' : cannot convert from
> 'LARGE_INTEGER' to 'double'
> 1>        No user-defined-conversion operator available that can
> perform this conversion, or the operator cannot be called
> 1>        R:\Programming_Projects\Spirit_Price
> \ejg_uint_parser_timing\other_includes\ejg/timer.cpp(109)
> : while compiling class template member function 'void
> ejg::generic_timer<ticks>::calibrate_seconds(void)'
> 1>        with
> 1>        [
> 1>            ticks=ticks
> 1>        ]
> 1>        .\ejg_uint_parser.cpp(133) : see reference to class template
> instantiation 'ejg::generic_timer<ticks>' being compiled
> 1>        with
> 1>        [
> 1>            ticks=ticks
> 1>        ]
> 1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing
> \other_includes\ejg/timer.cpp(239)
> : warning C4267: '=' : conversion from 'size_t' to 'unsigned int',
> possible loss of data
> 1>        .\ejg_uint_parser.cpp(154) : see reference to function
> template instantiation 'void
> ejg::generic_timer<ticks>::measure_percentage_speedup<void(__cdecl
> *)(void),void(__cdecl *)(void)>(_OperationA,_OperationB,double
> &,double &,double &)' being compiled
> 1>        with
> 1>        [
> 1>            ticks=ticks,
> 1>            _OperationA=void (__cdecl *)(void),
> 1>            _OperationB=void (__cdecl *)(void)
> 1>        ]
> 1>R:\Programming_Projects\Spirit_Price\ejg_uint_parser_timing
> \other_includes\ejg/timer.cpp(246)
> : warning C4267: '=' : conversion from 'size_t' to 'unsigned int',
> possible loss of data
>
> So the union has no conversion to double, of course.  Trying

Ahah.  Perhaps that's why cycle.h has a macro called 'elapsed',  
designed to take the difference between two numbers with these types.

Clearly this is going to be tougher than I thought.  I originally  
avoided making the list of stored time differences a concrete type  
such as double, now it looks like I might have to.  Otherwise it will  
require sticking lots of extra cruft in as template arguments (a  
function for taking differences of times for example).

> What do you want me to do with util::high_resolution_timer?

1) You need to make a chronometer function in global scope such as:

util::high_resolution_timer global_timer_object;

double boost_chrono() {
        return global_timer_object.now();
}

Internal to the timing library it makes two calls to the chronometer  
and uses the difference in the times, so it's important that  
util::high_resolution_timer never gets reset.  Since it's only double  
precision this has subtle implications for long timings.

2) In the instantiation of ejg::generic_timer do replace the stuff  
that looks like

        ejg::generic_timer<ticks> timer(getticks);

with

        ejg::generic_timer<double>  timer(boost_chrono);

Everything else should then work from there. Let me know how that goes.

>> Otherwise do you think the compiler is getting confused between  
>> the name of
>> the template parameter 'ticks' and the type 'ticks'?
>
> Hmm, do not know, I never duplicate names like that so have not run  
> into that...

Let's assume it's ok for now...


> On Sun, Jul 19, 2009 at 9:51 PM, Joel de
> Guzman<joel@...> wrote:
>> Edward, just a compliment (for now): what you are doing is cool!
>> I'm starting to be an eager supporter.
>
> I have to say that I like the design of your timer library as well,
> looks to be very useful.  :)

Thanks.  There are (clearly) some wrinkles to iron out - but that's  
why we are here.

-ed

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

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

design patterns in boost?

by jon_zhou :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

hi there

any design patterns implementation in boost?

such as ,singleton,object factory,etc?

thanks
rui


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: design patterns in boost?

by Edouard A. :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, 20 Jul 2009 17:25:11 +0800, <jon_zhou@...> wrote:

> any design patterns implementation in boost?
>
> such as ,singleton,object factory,etc?

If you are refering to the gang of 4 book, you have the flyweight design
pattern.

http://www.boost.org/doc/libs/1_39_0/libs/flyweight/doc/index.html

--

EA
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Stewart, Robert :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

OvermindDL1 wrote:
>
> As stated, the numbers are basically hogwash until all three forms are
> all tested on the same hardware using the same compiler.  I *might*
> have time tonight to work on the code that the others posted above to
> get it compilable, although it is rather irritating that they posted
> code that was incomplete, but meh.

I'm getting tired of reading your indirect insults of me.  I already responded that I would post complete code if and when I could.  I'm pleased to see you so excited to work on this now and to show that using Spirit may well be the ideal solution.  I'm sorry for your irritation that more from me is not forthcoming, but I cannot do more just now.  Please drop the negativity.

I posted my code in the most complete form I could for Eric's benefit, not so it would be a complete example and test suite for you and others could compile and run.  *When* I have the opportunity, I will extract the code that exists in different files and libraries, and craft a custom version of the scaffolding necessary to make my Xpressive and custom code compile and which will reflect what I was actually running when I gave comparative results.

I tried posting a file with the test inputs to this list, but it made my message too large and was rejected.  I didn't think it made sense to put such a file in the vault, so I have not put it there -- or anywhere -- as yet.  Lacking any other concrete idea, I may post the file in the vault anyway.  I will indicate as much when I do.

_____
Rob Stewart                           robert.stewart@...
Software Engineer, Core Software      using std::disclaimer;
Susquehanna International Group, LLP  http://www.sig.com

IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Stewart, Robert :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Eric Niebler wrote:
>
> Robert, can you please post your complete code so that we can
> actually
> have meaningful numbers to look at? Thanks.

I will do so as soon as I'm able.

_____
Rob Stewart                           robert.stewart@...
Software Engineer, Core Software      using std::disclaimer;
Susquehanna International Group, LLP  http://www.sig.com

IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by OvermindDL1 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Jul 20, 2009 at 7:18 AM, Stewart, Robert <Robert.Stewart@...> wrote:
> I'm getting tired of reading your indirect insults of me.  I already responded that I would post complete code if and when I could.  I'm pleased to see you so excited to work on this now and to show that using Spirit may well be the ideal solution.  I'm sorry for your irritation that more from me is not forthcoming, but I cannot do more just now.  Please drop the negativity.

No insults intended.  Just on the other lists I frequent, posting
incomplete source-code is not allowed, and such 'hints' serve to
remind people of that.  Habit is hard to drop on other lists since
that rule is so amazingly useful.  :)


On Mon, Jul 20, 2009 at 7:18 AM, Stewart, Robert <Robert.Stewart@...> wrote:
> I tried posting a file with the test inputs to this list, but it made my message too large and was rejected.  I didn't think it made sense to put such a file in the vault, so I have not put it there -- or anywhere -- as yet.  Lacking any other concrete idea, I may post the file in the vault anyway.  I will indicate as much when I do.

Posting large files to the list are fine, I have done so a few times,
it takes longer to get it accepted, but mine have always been
accepted.  How long ago did you post it?
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Thorsten Ottosen-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

OvermindDL1 skrev:
> On Mon, Jul 20, 2009 at 7:18 AM, Stewart, Robert <Robert.Stewart@...> wrote:
>> I'm getting tired of reading your indirect insults of me.  I already responded that I would post complete code if and when I could.  I'm pleased to see you so excited to work on this now and to show that using Spirit may well be the ideal solution.  I'm sorry for your irritation that more from me is not forthcoming, but I cannot do more just now.  Please drop the negativity.
>
> No insults intended.  Just on the other lists I frequent, posting
> incomplete source-code is not allowed, and such 'hints' serve to
> remind people of that.  Habit is hard to drop on other lists since
> that rule is so amazingly useful.  :)

Well, the code might not be yours to post, e.g. your employer might not
allow you to do that without permission.

Furthermore, one can ofte give very fast aswers if one does not need to
test code etc.

-Thorsten
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Joel de Guzman-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thorsten Ottosen wrote:

> OvermindDL1 skrev:
>> On Mon, Jul 20, 2009 at 7:18 AM, Stewart, Robert
>> <Robert.Stewart@...> wrote:
>>> I'm getting tired of reading your indirect insults of me.  I already
>>> responded that I would post complete code if and when I could.  I'm
>>> pleased to see you so excited to work on this now and to show that
>>> using Spirit may well be the ideal solution.  I'm sorry for your
>>> irritation that more from me is not forthcoming, but I cannot do more
>>> just now.  Please drop the negativity.
>>
>> No insults intended.  Just on the other lists I frequent, posting
>> incomplete source-code is not allowed, and such 'hints' serve to
>> remind people of that.  Habit is hard to drop on other lists since
>> that rule is so amazingly useful.  :)
>
> Well, the code might not be yours to post, e.g. your employer might not
> allow you to do that without permission.
>
> Furthermore, one can ofte give very fast aswers if one does not need to
> test code etc.

Agreed, but Rob somehow presented a challenge when he said:

"The purpose of this exercise is to compare the code and performance,
so they must all perform the same task."

This implies that there's a code to compare to and benchmark
against. Also, it's rather frustrating to see posted benchmarks
without being able to really test them and scrutinize the code for
possible errors, etc.

Regards,
--
Joel de Guzman
http://www.boostpro.com
http://spirit.sf.net

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Stewart, Robert :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

OvermindDL1 wrote:

> On Mon, Jul 20, 2009 at 7:18 AM, Stewart, Robert
> <Robert.Stewart@...> wrote:
>
> > I tried posting a file with the test inputs to this list,
> but it made my message too large and was rejected.  I didn't
> think it made sense to put such a file in the vault, so I
> have not put it there -- or anywhere -- as yet.  Lacking any
> other concrete idea, I may post the file in the vault anyway.
>  I will indicate as much when I do.
>
> Posting large files to the list are fine, I have done so a few times,
> it takes longer to get it accepted, but mine have always been
> accepted.  How long ago did you post it?

As I said, it was rejected.  I didn't suggest that the message is languishing in a moderation queue.  Compressed, the file is over 300KiB.

_____
Rob Stewart                           robert.stewart@...
Software Engineer, Core Software      using std::disclaimer;
Susquehanna International Group, LLP  http://www.sig.com

IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Stewart, Robert :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Joel de Guzman wrote:

> Thorsten Ottosen wrote:
> >
> > Well, the code might not be yours to post, e.g. your employer
> > might not allow you to do that without permission.
> >
> > Furthermore, one can ofte give very fast aswers if one does
> > not need to test code etc.
>
> Agreed, but Rob somehow presented a challenge when he said:
>
> "The purpose of this exercise is to compare the code and
> performance, so they must all perform the same task."

As I recall the context, that was in answer to some questions about what Overmind had begun.

> This implies that there's a code to compare to and benchmark
> against. Also, it's rather frustrating to see posted benchmarks
> without being able to really test them and scrutinize the code
> for possible errors, etc.

Overmind was deviating from the original description and so I was showing that for *his work* to be comparable to what I had done and posted, it had to perform the same task.  I'm sorry to have implied more.

I agree that little more can be done until I post complete examples or someone else manages to do so from what I did post.

_____
Rob Stewart                           robert.stewart@...
Software Engineer, Core Software      using std::disclaimer;
Susquehanna International Group, LLP  http://www.sig.com

IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Joel de Guzman-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Stewart, Robert wrote:

> When* I have the opportunity, I will extract the code that exists in
different files and libraries, and craft a custom version of the
scaffolding necessary to make my Xpressive and custom code compile and
which will reflect what I was actually running when I gave comparative
results.
>
Thank you, Robert.

Regards,
--
Joel de Guzman
http://www.boostpro.com
http://spirit.sf.net

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: design patterns in boost?

by Zachary Turner-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Jul 20, 2009 at 4:33 AM, Edouard A.<edouard@...> wrote:

> On Mon, 20 Jul 2009 17:25:11 +0800, <jon_zhou@...> wrote:
>
>> any design patterns implementation in boost?
>>
>> such as ,singleton,object factory,etc?
>
> If you are refering to the gang of 4 book, you have the flyweight design
> pattern.
>
> http://www.boost.org/doc/libs/1_39_0/libs/flyweight/doc/index.html

And visitor (see boost::variant).  Obviously iterator is implemented
by boost, and boost also has state machines implementing the State
pattern.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [xpressive] Performance Tuning?

by Edward Grace :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>>     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:

   http://tinyurl.com/km9xlh

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

   ejg-timer-0.0.3.tar.gz

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

voodo...

The uint_parser example that utilises the above is:

   ejg_uint_parser_0_0_3.cpp

I wait with baited breath.

-ed


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

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
< Prev | 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 | Next >