Can anyone point me to some papers describing algorithms that maintain root identity for each reachable object? I'm trying to determine if there's an O(N) algorithm for profiling the cumulative size of objects reachable from other objects, but without double-counting when they're reachable from multiple roots. I searched the gclist archive but didn't come up with anything.