Boost logo

Boost :

From: Dean Michael Berris (mikhailberis_at_[hidden])
Date: 2008-06-22 22:52:12


Hi Ion!

On Mon, Jun 23, 2008 at 2:13 AM, Ion Gaztañaga <igaztanaga_at_[hidden]> wrote:
>
> The last few months, I've taken another step forward and I've developed a
> small Boost library based on a modified DLmalloc code. I've developed some
> allocators above the modified DLmalloc and I've measured the performance
> benefits that can be obtained with optimized allocators that offer some new
> features like buffer expansion, burst allocation, etc... Test were performed
> using Interprocess containers, but instead of shared memory allocators, I've
> compared DLmalloc based heap allocators against the standard
> std::allocator<>.
>

The DLmalloc implementation you compared against was written in C
which you adapted to C++, correct?

I for one have been looking for a better alternative to both the
standard allocator and the Boost.Pool allocator. A DLmalloc based
implementation would be interesting to see if not as a
Boost-provided/included implementation or one day a standard allocator
alternative implementation.

> I've written a long article with my explanations and conclusions:
>
> http://www.drivehq.com/web/igaztanaga/allocplus/
>

Wow, it is long and very well written. I do have some questions off
the top of my head:

- have you tested how your implementation performs on multiple threads?
- have you tried measuring the direct effect of random-sized,
random-timed, random-ordered allocations/deallocations?
- i notice that you were using vmware; admittedly the effect of
running Linux in a VMWare instance as a guest already causes
performance degradation, have you considered using something else that
takes advantage of processor virtualization features better (like
Virtualbox)? or better yet, have you tried running it on a native
Linux implementation?

> The library (includes the article) can be downloaded here:
>
> http://www.drivehq.com/web/igaztanaga/allocplus.zip
>
> The library has no docs (the article explains all the basics) and does not
> surely meet Boost standards. The only goal of this article, the library and
> this post is to share information with other Boost container authors and
> discuss possible improvements that maybe could be applied to Boost
> containers. If those improvements are considered interesting, it would be
> great if we could write a library with allocators and develop some "existing
> practice" with boost containers before writing a future proposal to improve
> allocators.
>
> I plan to publish the article somewhere (supposing someone is crazy enough
> to publish it ;-) ) but first I wanted to share this with boosters to try to
> improve the article/library and know if developers are interested in
> allocator issues. Comments are welcome!
>

I'm looking forward to the answers to my questions and the further
improvement of this article. Thanks very much for sharing this!

-- 
Dean Michael C. Berris
Software Engineer, Friendster, Inc.

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk