8152910: Get performance improvement with Stable annotation
Remi Forax
forax at univ-mlv.fr
Mon Oct 1 21:46:11 UTC 2018
Hi Brian,
can you move the [] to the right place at the same time, to use the java syntax not the C one.
i.e.
@Stable
private static final BigInteger[] posConst = new BigInteger[MAX_CONSTANT+1];
instead of
@Stable
private static final BigInteger posConst[] = new BigInteger[MAX_CONSTANT+1];
cheers,
Rémi
----- Mail original -----
> De: "Brian Burkhalter" <brian.burkhalter at oracle.com>
> À: "core-libs-dev" <core-libs-dev at openjdk.java.net>
> Envoyé: Lundi 1 Octobre 2018 23:31:22
> Objet: 8152910: Get performance improvement with Stable annotation
> Please review at your convenience:
>
> https://bugs.openjdk.java.net/browse/JDK-8152910
>
> JMH benchmarks do show a slight but measurable performance improvement with the
> below patch applied.
>
> Thanks,
>
> Brian
>
> --- a/src/java.base/share/classes/java/math/BigInteger.java
> +++ b/src/java.base/share/classes/java/math/BigInteger.java
> @@ -41,6 +41,7 @@
> import jdk.internal.math.DoubleConsts;
> import jdk.internal.math.FloatConsts;
> import jdk.internal.HotSpotIntrinsicCandidate;
> +import jdk.internal.vm.annotation.Stable;
>
> /**
> * Immutable arbitrary-precision integers. All operations behave as if
> @@ -1219,8 +1220,10 @@
> * Initialize static constant array when class is loaded.
> */
> private static final int MAX_CONSTANT = 16;
> - private static BigInteger posConst[] = new BigInteger[MAX_CONSTANT+1];
> - private static BigInteger negConst[] = new BigInteger[MAX_CONSTANT+1];
> + @Stable
> + private static final BigInteger posConst[] = new
> BigInteger[MAX_CONSTANT+1];
> + @Stable
> + private static final BigInteger negConst[] = new
> BigInteger[MAX_CONSTANT+1];
More information about the core-libs-dev
mailing list