Re: [Boost-bugs] [Boost C++ Libraries] #3218: string_algo algorithms are quite slow in some popular compiler/OS/hardware situations

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #3218: string_algo algorithms are quite slow in some popular compiler/OS/hardware situations
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-07-20 19:27:32


#3218: string_algo algorithms are quite slow in some popular compiler/OS/hardware
situations
------------------------------------------------------+---------------------
 Reporter: Yuri Goldfeld <yuri_goldfeld@…> | Owner: pavol_droba
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: string_algo
  Version: Boost 1.37.0 | Severity: Problem
 Keywords: performance string_algo strings |
------------------------------------------------------+---------------------

Comment(by anonymous):

 Replying to [comment:7 yuri_goldfeld@…]:
>
> Also, it seems that even with case-sensitive algorithms the performance
 can be quite a bit worse than my dumber library (see results for
 starts_with() and equals()).

 Hello,

 Tests showed that the bottleneck lies in the MS implementation of locales.
 It is a possible problem, but I don't consider it critical. There are two
 reasons for it:
 1) The problem is not on the side of the library. Following the boost
 spirit, the implementation is targeted for a generic C++ conforming
 compiler. As such you can see that it performs rather well on GCC. It does
 not try to workaround deficiencies in specific platforms/compilers like
 MS. The effect of these might be counterproductive. Right now it the well
 know library performs badly and show an obvious problem in the compiler,
 the developments team might be more inclined to fix the issue. Otherwise
 it would stay happy, not knowing that there's any problem at all. Let them
 do their job ;)

 2) Secondly, since the StringAlgo library is written in very generic way,
 you can easily overcome this shortcoming by using your optimized is_iequal
 predicate. The boost version is not hardwired in to algorithms. It is
 merely provided as a generic default. All case-insensitive algorithms have
 a generic variant that accepts an arbitrary character comparison
 predicate. Please consult the documentation for the library to find out
 the details.

 Under these conditions I consider this issue to be resolved.

 Best Regards,
 Pavol

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/3218#comment:9>
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:50:00 UTC