RFR8220166 : Performance regression in deserialization

Alan Bateman Alan.Bateman at oracle.com
Thu May 16 09:43:57 UTC 2019


On 15/05/2019 21:32, Roger Riggs wrote:
> Please review a change in the synchronization during the creation of 
> an ObjectInputStream.
> Currently, a synchronized block is used to initialize the streams 
> filter is read the global serial filter
> which becomes a bottleneck under high concurrency.  Since the value 
> only ever changes from null to non-null
> once, the synchronization is not needed.  Changing the field to 
> volatile and removing
> the synchronization on read should alleviate the contention.
>
> Issue:
>   https://bugs.openjdk.java.net/browse/JDK-8220166
>
> Webrev:
>   http://cr.openjdk.java.net/~rriggs/webrev-fix-8220166/index.html
This looks okay. In passing, getSerialFilter's javadoc doesn't make 
clear that it can return non-null when configured or set.  The setter is 
a bit clearer on this point.

-Alan


More information about the core-libs-dev mailing list