Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4220: Performance of erase in multi-index-container
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-05-17 17:56:06
#4220: Performance of erase in multi-index-container
-------------------------------+--------------------------------------------
Reporter: Rohit Joshi | Owner: joaquin
Type: Support Requests | Status: closed
Milestone: Boost 1.43.0 | Component: multi_index
Version: Boost 1.42.0 | Severity: Optimization
Resolution: invalid | Keywords:
-------------------------------+--------------------------------------------
Comment(by anonymous):
Replying to [comment:7 joaquin]:
> Closing this report as a non-bug. Hashed indices aren't designed to work
efficiently when there are *many* different equal elements.
Thanks for your explanation. I just found that the performance for
hashed_non_unique versus hashed_unique for 2nd index is the almost same
except slight overhead of checking duplicate. The bottleneck was with
boost::object_pool. I don't know internal implementation but it seem it is
a list where it iterate through the list to find objects.
To delete 10,000 objects from object_pool:0.480829439
To delete 20,000 objects from object_pool:5.37241036
To delete 30,000 objects from object_pool:21.4259488218
I think we need to create a bug for boost::object_pool.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4220#comment:8> 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:03 UTC