As a developer's perspective(not mentor). When you work into the global level integration at the cloud native field, you will notice how grpc(protobuf) widely used :) If your plans are around this, I would like to suggest you considering more than just performance. Some of you should know what I think about the performance :P
Sheng Wu 吴晟 Twitter, wusheng1108 lidong dai <[email protected]> 于2021年1月5日周二 下午10:39写道: > 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 > > > > >
