RFR: 8339640: Reduce construction overheads in StringConcatFactory$InlineHiddenClassStrategy

Chen Liang liach at openjdk.org
Fri Sep 6 11:59:50 UTC 2024


On Fri, 6 Sep 2024 07:39:45 GMT, Claes Redestad <redestad at openjdk.org> wrote:

> Using the trusted `invokeBasic` method streamlines invokers and avoids spinning up of some type conversion handles. This reduces classes generated in a few scalability stress tests.

src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java line 1257:

> 1255:                 if (handlePair != null) {
> 1256:                     try {
> 1257:                         var instance = handlePair.constructor.invokeBasic(constants);

Hmm, `invokeBasic` notes ask to call with plain `Object` but `constants` is a `Object[]`... Don't know how that really worked out. Should we explicitly cast to `Object` as javac treats this as a sigpoly method (using the invocation type)?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20884#discussion_r1747000956


More information about the core-libs-dev mailing list