[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