JDK-6711913 : JVM needs linkage tables for efficient application loading
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Won't Fix
  • OS: generic
  • CPU: generic
  • Submitted: 2008-06-07
  • Updated: 2019-05-02
  • Resolved: 2018-12-18
http://blogs.sun.com/jrose/entry/linkage_tables_in_the_vm (forthcoming)

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)

[~dlong] Can you describe your idea above in another RFE for the compiler subcategory? This proposal was a general investigation of constant pool/linkage table investigations. With some CDS work to make the constant pool read only and other new forms like ConstantDynamic, and the improvements to bootstrap attributes, this umbrella RFE doesn't make sense on its own anymore, so we've closed it.

Runtime Triage: This is not on our current list of priorities. We will consider this feature if we receive additional customer requirements.

John: please expand on current thoughts here, or else close. Thanks.

I agree with [~coleenp]. Moving.

This belongs to runtime imho