RFR: 8340456: Reduce overhead of proxying Object methods in ProxyGenerator

Claes Redestad redestad at openjdk.org
Fri Sep 20 09:23:47 UTC 2024


On Thu, 19 Sep 2024 14:08:04 GMT, Claes Redestad <redestad at openjdk.org> wrote:

> This PR changes proxy code gen to avoid generating `Class.forName("java.lang.Object")`, instead emitting an ldc for the class literal, `ldc(CD_Object)`, java code equivalent `Object.class`. 
> 
> More types could profitably use `ldc(ClassDesc/-Entry)`, taking cues from `InvokerBytecodeGenerator.isStaticallyInvocable`, but just addressing the `Object` methods gets rid of most `Class.forName` emits. It's not terribly important for throughput performance since these are called in the generated `clinit`, so getting a quick win with few additional checks is a good starting point.
> 
> Added a few unrelated minor refactors/improvements, guided by diagnostic runs of the now fixed microbenchmark.

Thanks!

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

PR Comment: https://git.openjdk.org/jdk/pull/21090#issuecomment-2363263160


More information about the core-libs-dev mailing list