RFR: 8341649: Regressions with large metaspace apps after 8338526

Coleen Phillimore coleenp at openjdk.org
Tue Dec 3 13:41:39 UTC 2024


On Mon, 2 Dec 2024 17:41:30 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

> Putting generated LambdaForm$MH and $DMH in non-class space seems to cause excess dependency checking for c2 compiled code and shows a performance regression in a new JMH performance test for MethodHandles (to be checked in at a later time).
> 
> When I made this abstract rather than final, I thought there were a many generated classes but I haven't found in testing more than a small percentage.  For example, Dacapo xalan there are 43/1000 classes that are these generated classes.  In Eric's new JMH test, it was more like 51/681.  Special casing "AllStatic" classes to go in non-class metaspace is a bit too risky at this time.  If it does become a problem with limited class metaspace, we can create another attribute to use.
> 
> Tested with tier1-4 and the JMH test.  Thanks Eric Caspole for finding this and all the testing.

Thank you for the code review.  ACC_FINAL is a good thing to have for these generated classes as it helps the JIT compilers.  It would be really nice if there was some ACC_ALLSTATIC which meant that the code cannot create instances of these classes but that doesn't exist.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/22493#issuecomment-2514584072


More information about the core-libs-dev mailing list