从小白到架构师 golang 开发遇到的性能问题

易寒 · 2018年10月25日 · 最后由 易寒 回复于 2018年10月26日 · 4628 次阅读

问题总览

  • json 库效率低:1000 条数据,由 json 字符串转化为 struct 时,耗时 40ms。

解决方法

json 库效率低下

原生encoding/json库序列化的性能差,而且其他一些库比如json-iterator性能也很差,不适合在追求性能的模块中使用json.Marshal()json.Unmarshal()方法。下面几种情形不要使用上面的json序列化进行转换,而是用挨个属性赋值。

  • struct之间的转换
  • 避免mapstruct之间的转换
  • structpb之间的转换
  • json字符串解析用https://github.com/valyala/fastjson
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞

主要是用到了 reflect 所以比较慢

codeskyblue 回复

是,有其他推荐方案么?我正在找,因为毕竟还有 json 字符串的解析操作无法去掉。

有个 simplejson 你试试

codeskyblue 回复

试了下跟json-iterator一样,20ms,不行。

codeskyblue 回复

这个不错,只用了 5ms,比之前几个都好。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册