[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Integrated: 8253525: Implement getInstanceSize/sizeOf intrinsics
From: Aleksey Shipilev <shade () openjdk ! java ! net>
Date: 2020-11-13 8:23:03
Message-ID: NxMCu4b7cZZM3UK9fIKZqfmQ5YqtCGU4LY5V5_luWcM=.e2947550-6c79-4d0b-8068-70f3b90e463d () github ! com
[Download RAW message or body]
On Wed, 14 Oct 2020 10:11:23 GMT, Aleksey Shipilev <shade@openjdk.org> wrote:
> This is fork off the SizeOf JEP, JDK-8249196. There is already the entry point in \
> JDK that can use the intrinsic like this: `Instrumentation.getInstanceSize`. \
> Therefore, we can implement the C1/C2 intrinsic now, hook it up to \
> `Instrumentation`, and let the tools use that fast path today.
> With this patch, JOL is able to be close to `deepSizeOf` implementation from SizeOf \
> JEP.
> Example performance improvements for sizing up a custom linked list:
>
> Benchmark (size) Mode Cnt Score Error Units
>
> # Default
> LinkedChainBench.linkedChain 1 avgt 5 705.835 ± 8.051 ns/op
> LinkedChainBench.linkedChain 10 avgt 5 3148.874 ± 37.856 ns/op
> LinkedChainBench.linkedChain 100 avgt 5 28693.256 ± 142.254 ns/op
> LinkedChainBench.linkedChain 1000 avgt 5 290161.590 ± 4594.631 ns/op
>
> # Instrumentation attached, no intrinsics
> LinkedChainBench.linkedChain 1 avgt 5 159.659 ± 19.238 ns/op
> LinkedChainBench.linkedChain 10 avgt 5 717.659 ± 22.540 ns/op
> LinkedChainBench.linkedChain 100 avgt 5 7739.394 ± 111.683 ns/op
> LinkedChainBench.linkedChain 1000 avgt 5 80724.238 ± 2887.794 ns/op
>
> # Instrumentation attached, new intrinsics
> LinkedChainBench.linkedChain 1 avgt 5 95.254 ± 0.808 ns/op
> LinkedChainBench.linkedChain 10 avgt 5 261.564 ± 8.524 ns/op
> LinkedChainBench.linkedChain 100 avgt 5 3367.192 ± 21.128 ns/op
> LinkedChainBench.linkedChain 1000 avgt 5 34148.851 ± 373.080 ns/op
This pull request has now been integrated.
Changeset: b4d01867
Author: Aleksey Shipilev <shade@openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/b4d01867
Stats: 655 lines in 12 files changed: 655 ins; 0 del; 0 mod
8253525: Implement getInstanceSize/sizeOf intrinsics
Reviewed-by: kvn, sspitsyn
-------------
PR: https://git.openjdk.java.net/jdk/pull/650
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic