1) Allocation size function: Do you allocate fixed size chunks of N objects at a time? Exponential increase in chunk size (I believe valgrind does this for its memchecker)? If exponential, do you also back off exponentially, or linearly? Something else?
2) Used/free record keeping: Bitfield? Linked-list? Other?
3) New allocations: realloc or array/linked list of pointers (I bet I know the answer to this one)?
Some justification would be nice, if you've got the time.