gob,protobuf,json在golang中的序列化效率对比

先上代码:

looptimes:=10000
	u:=User{66,"nxin","beijing"}
	gobbegintimestamp:=strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
	gobbeginint,_:=strconv.Atoi(gobbegintimestamp)
	fmt.Println("gob序列化==============================",gobbeginint)
	buf := new(bytes.Buffer)   //分配内存
	enc := gob.NewEncoder(buf) //创建基于buf内存的编码器
	for i:=0;i

尝试了100,1000,10000,100000次的序列化对比时间:

总结:

总体来说protobuf的效率最高,gob的效率比json的还要低。

100次时三者相差不大。

=====================================================================

1000次时三者表现不稳地,测试出来的结果:

gob,protobuf,json在golang中的序列化效率对比_第1张图片

以前一种出现的次数更多。

=====================================================================

10000次出现的结果,protobuf效率明显要高,但是json与gob差别不大:


=====================================================================

100000次出现的结果:


protobuf还是明显优势,但是gob有点落后。

综上所述:在数据量小的时候三者差不多,但是数据量大了以后protobuf会更好,但是gob显得力不从心,json表现中庸。


你可能感兴趣的:(Golang)