A fast compacting memory management system for interactive systems
To write and benchmark a special-purpose allocator that can compact its heap, while still being fast enough for usage within non-trivial applications.
Main interface: handle_t alloc(size_t); void *lock(handle_t); void unlock(handle_t); void free(handle_t); Compacting is done automatically or triggered by client code, e.g. when waiting for I/O. The hypothesis is that by performing compacting when less costly, the operations free() and malloc() can be made O(1).