使用 easyjson,生成 xxx_easyjson.go 文件之后,对测试结果所产生的影响

文章评论:原文地址: https://blog.csdn.net/luslin1711/article/details/90244468

正文:

博主,你好,文中的测试结果,似乎不是很正确。

由于评论区字数的限制,我另开一篇文章,请您解惑。

以下是我的测试过程,如有误,请不吝赐教


golang 版本: 1.14.1

对比 encoding/json、json-iterator、easyjson 三个类库

go test -bench=. -benchmem

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

1、对比 encoding/jsonjson-iterator, 

注意,此时还没_easyjson.go

你会发现:encoding/json 的性能优于 json-iterator

BenchmarkEncodingJson-4           845158              1405 ns/op             480 B/op          1 allocs/op
BenchmarkJsoniterJson-4           704700              1710 ns/op             488 B/op          2 allocs/op

--------------------------------------------------------------------------

2、继续对比: encoding/jsonjson-iterator

注意: _easyjson.go 已经生成

你会发现 json-iterator 性能优于 encoding/json ,但是平均内存占用量(B/op),平均内存分配次数(allocs/op),也都增加了,而平均耗时(ns/op)也不是很理想

BenchmarkEncodingJson-4           210267              5406 ns/op            1568 B/op          6 allocs/op
BenchmarkJsoniterJson-4           749446              1642 ns/op            1576 B/op          7 allocs/op


--------------------------------------------------------------------------

3、对比: encoding/json、 json-iterator、easyjson

注意: _easyjson.go 已经生成

测试的结果,当然是 easyjson 最优先,但是你发现没,有了_easyjson.go文件之后,测试2、3 的结果中,平均内存占用量(B/op),平均内存分配次数(allocs/op),也都增加了,

而平均耗时(ns/op), 与使用 encoding/json(无 _easyjson.go时)的测试结果差距并不多, encoding/json(无 _easyjson.go时)的 B/op、allocs/op 也更优
 

BenchmarkEncodingJson-4           210403              5511 ns/op            1568 B/op          6 allocs/op
BenchmarkJsoniterJson-4           705922              1625 ns/op            1576 B/op          7 allocs/op
BenchmarkEasyJson-4              1000000              1258 ns/op            1088 B/op          5 allocs/op

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值