On Wed, 25 May 2022 09:38:08 GMT, Claes Redestad <redes...@openjdk.org> wrote:

> The bespoke caching scheme in `jl.invoke.LambdaFormEditor.TransformKey` 
> allows keys to be compacted when all byte values of the key fit in 4 bits, 
> otherwise a byte array is allocated and used. This means that all transforms 
> with a kind value above 15 will be forced to allocate and use array 
> comparisons.
> 
> Removing unused and folding some transforms to ensure all existing kinds can 
> fit snugly within the 0-15 value range realize a minor improvement to 
> footprint, speed and allocation pressure of affected transforms, e.g. 
> ~300bytes/op reduction in the `StringConcatFactoryBootstraps` microbenchmark:
> 
> Baseline:
> 
> Benchmark                                                      Mode  Cnt     
> Score     Error   Units
> SCFB.makeConcatWithConstants                                   avgt   15  
> 2048.475 ?  69.887   ns/op
> SCFB.makeConcatWithConstants:?gc.alloc.rate.norm               avgt   15  
> 3487.311 ?  80.385    B/op
> 
> 
> Patched:
> 
> Benchmark                                                      Mode  Cnt     
> Score     Error   Units
> SCFB.makeConcatWithConstants                                   avgt   15  
> 1961.985 ? 101.519   ns/op
> SCFB.makeConcatWithConstants:?gc.alloc.rate.norm               avgt   15  
> 3156.478 ? 183.600    B/op

This pull request has now been integrated.

Changeset: be933185
Author:    Claes Redestad <redes...@openjdk.org>
URL:       
https://git.openjdk.java.net/jdk/commit/be93318576896e8f5f9733ae1f7e3e74d63f5594
Stats:     124 lines in 2 files changed: 70 ins; 21 del; 33 mod

8287292: Improve TransformKey to pack more kinds of transforms efficiently

Reviewed-by: jlaskey, jvernee, mchung

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

PR: https://git.openjdk.java.net/jdk/pull/8881

Reply via email to