ref counting is expensive in multi-threaded applications. Overall it would have worse performance. When it comes to predictability: deallocating a linked list (for instance) would have to deallocate all of the elements. Dealing with loops is also not simple, either.
raverbashing · · focus · HN ↗
(though of course a swap is a swap - but you can "trigger" it depending on your memory or file access pattern)
groestl · · focus · HN ↗
bheadmaster · · focus · HN ↗
Not really, reference counting can cause a single object deallocation to trigger an arbitrarily long chain of deallocations.
xxs · · focus · HN ↗