some things that support for can be coded into the garbage collector: build a list of all objects that reference this one. how much storage is accessible from this object. how much storage would be freed if this object were released? run a mark phase suppressing the marking of this object, then mark this object, accumulating the storage requirements of unmarked objects reachable from the target object. real time display of memory stats: memory in use as of end of last gc additional allocations since last gc fragmentation max heap size