[jdk25u] RFR: 8357289: Break down the String constructor into smaller methods [v2]

Shaojin Wen swen at openjdk.org
Fri Oct 31 08:46:44 UTC 2025


> Through JVM Option +PrintInlining, we found that String has a constructor codeSize of 852, which is too large. This caused failed to inline.
> 
> The following is the output information of PrintInlining:
> 
>                 @ 9   java.lang.String::<init> (12 bytes)   inline (hot)
> !m                 @ 1   java.nio.charset.Charset::defaultCharset (52 bytes)   inline (hot)
> !                  @ 8   java.lang.String::<init> (852 bytes)   failed to inline: hot method too big
> 
> 
> In Java code, the big method that cannot be inlined is the following constructor
> 
> 
> String(Charset charset, byte[] bytes, int offset, int length) {}
> 
> The above String constructor is too large; break it down into smaller methods with a codeSize under 325 to allow them to be inlined by the C2.

Shaojin Wen has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:

  8357289: Break down the String constructor into smaller methods
  
  Reviewed-by: liach, rriggs

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

Changes:
  - all: https://git.openjdk.org/jdk25u/pull/351/files
  - new: https://git.openjdk.org/jdk25u/pull/351/files/38e36d63..b6c666e4

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk25u&pr=351&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk25u&pr=351&range=00-01

  Stats: 0 lines in 0 files changed: 0 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk25u/pull/351.diff
  Fetch: git fetch https://git.openjdk.org/jdk25u.git pull/351/head:pull/351

PR: https://git.openjdk.org/jdk25u/pull/351


More information about the jdk-updates-dev mailing list