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