[8u76] Request for approval: 8140587: Atomic*FieldUpdaters should use Class.isInstance instead of direct class check
martinrb at google.com
Thu Dec 3 18:22:08 UTC 2015
Both of these changes seem fine to me.
I would prefer the "a" version - this keeps the jdk8u, jdk9, and
jsr166 CVS versions in sync, so is probably lower risk. jsr166 CVS
gets regularly tested against both jdk8u and jdk9.
On Thu, Dec 3, 2015 at 10:14 AM, Aleksey Shipilev
<aleksey.shipilev at oracle.com> wrote:
> This is yet another backport for improving Atomic*FieldUpdaters (A*FU)
> The rationale for the change is simple: use the intrinsified
> Class.isInstance instead of doing the direct class checks. This improves
> C2 performance in some corner cases, and improves C1 performance across
> most A*FU use cases (but only with C1 fix in JDK-8131782 applied, which
> is backported separately).
> Like other A*FU-related patches, thus provides a migration path with the
> eventual demise of sun.misc.Unsafe. Therefore, I'd like us to consider
> this in 8u76 to expose users to this improvement earlier than JDK 9 release.
> I am not a 8u Committer, so if the change is approved, I'd need a sponsor.
> JDK 9 Changeset:
> JDK 9 Review:
> This change was in jdk9/dev for a week. The patch DOES NOT apply cleanly
> over 8u sources, because of the formatting changes present only in jdk9,
> plus the sun.misc/jdk.internal.misc.Unsafe split, plus some
> modifier/method shuffling.
> JDK 9 patch contains a fair amount of formatting/modifier changes as
> well, so I suggest to copy A*FU classes from jdk9, picking all the minor
> changes, except for the Unsafe switch -- this would simplify future
> backports as well:
> Alternatively, we can backport the change separately:
> With both options, jdk8u builds and runs fine at least on Linux x86_64,
> and the performance improvement is the same as in JDK 9.
More information about the jdk8u-dev