Constant pools are inefficient for application linkage:
- they duplicate information shared between classes
- they mix mutable and immutable data
- their tagging scheme makes the VM vulnerable to race conditions
The solution is to remove constant pools as a primary structure in the Hotspot JVM, replacing them by linkage tables.
- separate mutable from immutable information (making the latter shareable)
- use memory coherence of single-word updates for safe state changes
- can be shared among groups of classes (directly read from Pack200-type inputs)