RFR [15] 8248233: Avoid superfluous Class::isRecord invocations during deserialization

Peter Levart peter.levart at gmail.com
Wed Jun 24 16:25:24 UTC 2020


Hi Chris,


The patch looks good.


Before the patch it made sense to have if (cl != null) in line 750 in 
ObjectStreamClass, but now nothing in the if block depends on cl, so you 
could use if (osc != null) instead. It is true that:


(cl != null) == (osc != null)


always holds there, but reading the code is easier that way, don't you 
think? Maybe you could even consider merging the content of this if 
block into the similar if block that starts in line 771?


Regards, Peter


On 6/24/20 5:46 PM, Chris Hegarty wrote:
> A micro-optimisation noticed when working on JDK-8247532.
>
> For further details see:
> https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-June/067446.html
>
> Webrev:
> https://cr.openjdk.java.net/~chegar/8248233/webrev.00/
>
> before:
> RecordSerializationBench.deserializeClasses10avgt 10 13.874 ±1.445us/op
>  RecordSerializationBench.deserializeClasses       100  avgt   10   
> 57.839 ±  3.944  us/op
>  RecordSerializationBench.deserializeClasses     1000  avgt   10  
> 515.483 ± 57.275  us/op
>  RecordSerializationBench.deserializeRecords       10  avgt   10   
> 13.563 ±  0.459  us/op
>  RecordSerializationBench.deserializeRecords       100  avgt   10   
> 61.704 ±  2.481  us/op
>  RecordSerializationBench.deserializeRecords     1000  avgt   10  
> 518.671 ± 19.147  us/op
> after:
> RecordSerializationBench.deserializeClasses10avgt 10 16.021 ±9.091us/op
>  RecordSerializationBench.deserializeClasses       100  avgt   10   
> 58.550 ±  2.164  us/op
>  RecordSerializationBench.deserializeClasses     1000  avgt   10  
> 524.930 ± 49.663  us/op
>  RecordSerializationBench.deserializeRecords       10  avgt   10   
> 12.567 ±  0.711  us/op
>  RecordSerializationBench.deserializeRecords       100  avgt   10   
> 50.235 ±  1.977  us/op
>  RecordSerializationBench.deserializeRecords     1000  avgt   10  
> 421.557 ± 17.348  us/op
>
> -Chris.
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8247532


More information about the core-libs-dev mailing list