1. An allocator that manages a heap of memory blocks for a process, the process employing a conservative garbage collector that is independent of the allocator to detect unused memory blocks in the heap and the allocator having the improvement comprising: a current heap map that is accessible to the garbage collector and that indicates the location of each block in the current heap and for each block, whether the block is collectible by the garbage collector.