You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2022/01/26 13:10:00 UTC

[jira] [Assigned] (IGNITE-16260) User object serialization performance optimization

     [ https://issues.apache.org/jira/browse/IGNITE-16260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Roman Puchkovskiy reassigned IGNITE-16260:
------------------------------------------

    Assignee: Roman Puchkovskiy

> User object serialization performance optimization
> --------------------------------------------------
>
>                 Key: IGNITE-16260
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16260
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Semyon Danilov
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>
> Currently, JDK serialization is quite faster than Ignite's user object serialization (AllTypesMessage object):
>  
> {code:java}
> Benchmark                                              Mode  Cnt        Score       Error  Units
> SerializationMicroBenchmark.jdk_serialization          avgt   15  1395605.836 ± 56061.652  ns/op
> SerializationMicroBenchmark.user_object_serialization  avgt   15  3913206.848 ± 78565.118  ns/op{code}
> During the profiling and benchmarking, I've managed to get these results (I also benchmark against kryo), be aware of the change of time unit:
>  
>  
> {code:java}
> Benchmark                                              Mode  Cnt     Score     Error  Units
> SerializationMicroBenchmark.jdk_serialization          avgt   15  1408.451 ±  52.326  us/op
> SerializationMicroBenchmark.kryo_serialization         avgt   15  2052.704 ± 102.327  us/op
> SerializationMicroBenchmark.user_object_serialization  avgt   15  1963.285 ±  65.170  us/op {code}
> For simple objects (three primitive fields) I have following results:
> {code:java}
> Benchmark                                              Mode  Cnt    Score    Error  Units
> SerializationMicroBenchmark.jdk_serialization          avgt   15  948.584 ± 80.484  ns/op
> SerializationMicroBenchmark.kryo_serialization         avgt   15  588.102 ± 13.152  ns/op
> SerializationMicroBenchmark.user_object_serialization  avgt   15  636.171 ± 66.541  ns/op {code}
> So it seems like JDK serialization is still better for complex objects, but not for simple objects. And kryo is the best on simple objects.
> See the branch associated with this issue to inspect the performance tweaks
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)