Concerns about weak refs and weak maps.
Allen.Wirfs-Brock at microsoft.com
Fri Oct 29 08:58:37 PDT 2010
Rick and Erik,
While the above Smalltalk GCs are multi-generational, neither utilized any parallelism. They clearly demonstrate that parallelism is not necessary to achieve low pause times in highly interactive GC'ed systems. Regardless, modern collectors exploiting parallelism exist for both Java and .Net that support various weak pointer abstractions. I'm comfortable that they provide a sufficient existence proof for efficient parallel collectors supporting weak reference semantics.
It is unfortunate, that the use of WeakMaps/Weak pointers/Ephemerons do impose some overhead that is proportional to their use. But the use of weak abstractions generally shows up in non-ephemeral use cases so this really isn't a problem. Still, they are a feature that shouldn't be used unnecessarily. However, when they are necessary, there really isn't any other good alternative.
More information about the es-discuss