Integrated: 8287292: Improve TransformKey to pack more kinds of transforms efficiently
Claes Redestad
redestad at openjdk.java.net
Fri May 27 12:15:34 UTC 2022
On Wed, 25 May 2022 09:38:08 GMT, Claes Redestad <redestad at 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 <redestad at 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
More information about the core-libs-dev
mailing list