On Mon, 24 Nov 2025 17:17:37 GMT, Chen Liang <[email protected]> wrote:

>> 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";
>>  />
>
> This is not the first time this VarHandle problem is hit - see #16451

This has bitten me lot of times @liach 😢 
Including others while reading/writing oop fields into arrays too; it would be 
nice to get an option to fail fast with an exception enabled via diagnostic 
args eg EnableStrictPolymorphicSignature
Although Javac should be able to detect it too, thinking about it twice

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

PR Comment: https://git.openjdk.org/jdk/pull/28475#issuecomment-3572001102

Reply via email to