Subject: Re: [Boost-bugs] [Boost C++ Libraries] #1670: wave almost unusably slow on real-world input
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-11-20 08:52:19
#1670: wave almost unusably slow on real-world input
--------------------------------------+-------------------------------------
Reporter: stefan | Owner: hkaiser
Type: Bugs | Status: reopened
Milestone: Boost 1.36.0 | Component: wave
Version: Boost Development Trunk | Severity: Problem
Resolution: | Keywords:
--------------------------------------+-------------------------------------
Comment(by jordi_at_[hidden]):
Maybe our experience can bring some useful information to this bug, and it
could locate some critical issue maybe in another boost library:
We met a similar problem: in our program we process around a 1000 files
with Wave and custom callbacks and it was taking much more than expected.
We profiled and found out that it spent 95% of time traversing the thread-
specific pointer list, in find_tss_data.
A more restricted test, compiling 6 batches with 30 times the same file
was surprisingly giving higher time on each successive batch. We checked
that we were not leaking any resources, and we are not doing strange
things. We disabled threading support in Wave and that fixed the problem,
making it the same time for each batch as it should. The real world case
moved from 40 minutes to 4 in some cases.
My conclusion is that something is not well managed with the thread
specific pointers either in WAVE, or in SPIRIT or in BOOST::THREAD itself.
This could be potentially a critical bug if that is the case, and should
be scaled down to the suitable libraries.
By the way, to disable threading I added this at the top of
wave_config.hpp, which is probably not a good idea:
#define BOOST_WAVE_SUPPORT_THREADING 0
Platform is WinXP. Verified with both 1.36.0 and 1.37.0 versions.
I hope this helps and thanks again for this great library.
jordi
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/1670#comment:6> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:59 UTC