On Sunday, 27 April 2014 at 05:43:07 UTC, Andrei Alexandrescu wrote:
Added SbrkRegion, SimpleBlocklist, and Blocklist.

http://erdani.com/d/phobos-prerelease/std_allocator.html#.SbrkRegion
http://erdani.com/d/phobos-prerelease/std_allocator.html#.SimpleBlocklist
http://erdani.com/d/phobos-prerelease/std_allocator.html#.Blocklist

https://github.com/andralex/phobos/blob/allocator/std/allocator.d

Destruction is as always welcome. I plan to get into tracing tomorrow morning.


Andrei

These are my biggest concerns with the allocator API:

1. Struct postblit/destructors don't work reliably, so knowing when to call deallocate() is very difficult.

2. As hard as I try, I still end up with the only references to GC-allocated memory being in my allocator-backed containers. The GC frees all sorts of memory that it shoudn't. It's a giant game af whack-a-mole trying to find the GC memory, which leads me to:

3. GC.removeRange is one of the slowest functions I've ever used. My allocator-backed binary tree implementation took 14 seconds to load a very large data set (compared to RedBlackTree's 35 seconds) and then spent the next five minutes in GC.removeRange before I got bored and killed it.

Reply via email to