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
Description
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.

Features:
- 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)

Comments
[~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.
18-12-2018

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

John: please expand on current thoughts here, or else close. Thanks.
08-02-2017

I agree with [~coleenp]. Moving.
19-04-2016

This belongs to runtime imho
05-11-2013