Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8338526

Don't store abstract and interface Klasses in class metaspace

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 24
    • None
    • hotspot
    • b15

      Abstract and interface classes can never have an instance, so their compressed representation is never used. These classes can be stored in the non-class metaspace, to save space for encoding more classes in the class metaspace.

      Also these lambdaform classes: java/lang/invoke/LambdaForm$MH are generated only to provide a static function. They're marked ACC_FINAL but if marked with ACC_ABSTRACT, they also can be added to non-class metaspace. Unfortunately, ACC_FINAL and ACC_ABSTRACT cannot be used together because it doesn't make sense, but we need some way to say that these classes are not used for creating instances.

            coleenp Coleen Phillimore
            coleenp Coleen Phillimore
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: