[hackathon] FreeTree is FreeList on autotune
Meta via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Sat May 2 04:11:48 PDT 2015
On Saturday, 2 May 2015 at 06:28:01 UTC, Andrei Alexandrescu
wrote:
> I'm just done implementing a pretty cool allocator: FreeTree.
>
> https://github.com/andralex/phobos/blob/allocator/std/experimental/allocator/free_tree.d
>
> http://erdani.com/d/phobos-prerelease/std_experimental_allocator_free_tree.html
>
> It's similar to the classic free list allocator but instead of
> a singly-linked list it uses a binary search tree for
> accommodating blocks of arbitrary size. The binary search tree
> accommodates duplicates by storing one extra pointer for each
> node, effectively embedding a singly-linked list (a free list
> really) for each node.
>
> So a FreeTree is have a bunch of freelists organized in a
> binary search tree. The tree is not balanced; instead, it uses
> an LRU heuristic - each freed block is inserted as (or close
> to) the root. Over the lifetime of a free tree, free lists
> naturally appear and disappear as dictated by the sizes most
> frequently allocated by the application.
>
> Feedback is welcome!
>
>
> Andrei
From the doc:
>If ParentAllocator defines (deallocate|allocate), ...
I forget what the rules are for allocators exactly, but isn't
something only an allocator if it defines allocate, deallocate,
owns, etc.? It just seems weird that you mentioned something that
I thought was implicit.
More information about the Digitalmars-d-announce
mailing list