This is boosting VirtualThread allocations while using 
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/Thread.Builder.OfVirtual.html#name(java.lang.String,long)

The pattern has been discovered on 
https://github.com/quarkusio/quarkus/issues/51201 and narrowed down in 
https://github.com/franz1981/java-puzzles/commit/5cb4216e8d56cdc6c3c23629419158550cbd9068

which, on my machine (Ryzen 7950 w fixed frequency at 4.2 GHz):

Benchmark                                                                Mode  
Cnt   Score   Error  Units
VarHandlePolymorphicSignatureSensitivity.rightVarHandle                  avgt   
10   1.852 ± 0.007  ns/op
VarHandlePolymorphicSignatureSensitivity.rightVarHandleConcatIndy        avgt   
10   9.891 ± 0.103  ns/op
VarHandlePolymorphicSignatureSensitivity.wrongVarHandle                  avgt   
10  10.430 ± 0.045  ns/op
VarHandlePolymorphicSignatureSensitivity.wrongVarHandleConcatIndy        avgt   
10  19.312 ± 0.619  ns/op

where the `right` indy shows:
<img width="1915" height="469" alt="image" 
src="https://github.com/user-attachments/assets/4c836389-492b-4cc6-94a3-849f8cf6ea09";
 />

vs the `wrong` one:
<img width="1915" height="469" alt="image" 
src="https://github.com/user-attachments/assets/73765060-8e95-42a2-a03a-4f53f927a8b8";
 />

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

Commit messages:
 - VarHandle wrongly uses int parameter on VirtualThread creation

Changes: https://git.openjdk.org/jdk/pull/28475/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28475&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8372410
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/28475.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28475/head:pull/28475

PR: https://git.openjdk.org/jdk/pull/28475

Reply via email to