|
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?>
> 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?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?> 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?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?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?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?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(). 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?>> 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?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?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?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?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?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?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?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?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?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?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?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?>> 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 > |
| Free embeddable forum powered by Nabble | Forum Help |