hi,
   It seems like Kryo is more popular besides ProtoBuf, so I suggest Kryo



Best Regards
---------------
DolphinScheduler(Incubator) PPMC
Lidong Dai
[email protected]
---------------


On Mon, Jan 4, 2021 at 2:39 PM CalvinKirs <[email protected]> wrote:

> hi, everyone.
>
>
> Before I mentioned the communication serialization scheme, I conducted JMH
> Test on protobuf, kryo and protostuff.
> This is the result
> @WarmUp(iterations = 10, time = 2)
> @measurement(iterations = 10, time = 2)
> @BenchmarkMode(Mode.Throughput)
> @OutputTimeUnit(TimeUnit.SECONDS)
> @State(Scope.Benchmark)
>
>
> Benchmark Mode Cnt Score Error  Units
> SerializerBenchMark.Kryo thrpt          20 171204.238 ± 27941.211 ops/s
> SerializerBenchMark.ProtoBuf thrpt   20 180551.996 ± 6657.504 ops/s
> SerializerBenchMark.ProtoStuff thrpt  20 221247.510 ± 3620.933 ops/s
>
>
> 大家可以下载我分支的代码来进行测试:
>
> https://github.com/CalvinKirs/incubator-dolphinscheduler/tree/jmh_ser/dolphinscheduler-microbench
>
>
> Note: Kryo (I turned on the function of class registration)
>
>
> When the data volume is too small, the efficiency of ProtoStuff is 3-5
> times that of Kryo. When the data volume is too large, ProtoStuff still
> performs well enough.
>
>
> I prefer ProtoStuff, the serialization scheme is basically becoming
> mature, so the community release will be slower. (ProtoStuff released three
> versions in 2020, so I think there is no problem with community activity.)
> At the same time, it is extremely efficient, easy to use, and performs very
> well in serialization speed and serialized volume.
>
>
> ProtoBuf is very good in cross-language, but we may not need
> cross-language support later. At the same time, because of the need to
> write proto files, I think this has a certain learning cost for new
> developers. Therefore it is not recommended.
>
>
> What do you think? I want to hear suggestions from the community.
>
>
> Best  wishes!
> CalvinKirs
>
>

Reply via email to