"the GC sweep can be O(1) rather than O(N) especially for persistent data structures" O(1) for each dealloction root->1st->2nd->3rd->....nth removing the link between root and 1st is still an O(n) operation take into account all the atomic increments and decrements (I think Arm may not be that great for this) going on with normal code usage the win over a generation GC is not necessarily as obvious as things would first appear