go json.Unmarshal 深拷贝性能太差怎么办?

2023-12-18 18:56:33 +08:00
 6581
  1. 项目 A 需要使用项目 B 提供的配置文件
  2. 项目 B 提供的配置文件是以 json 字符串格式存在,保存在 redis
  3. redis 中的配置文件是会变化的
  4. A 项目需要频繁使用配置文件,就需要不断做 json.Unmarshal()。性能很差
  5. 如果把 json.Unmarshal() 之后的 object 保存在内存中,减少 json.Unmarhsal() 的操作。不同 goroutine 拿到的 object 就是浅拷贝的,并发不安全。

大佬们如何解决这个问题呢?

2383 次点击
所在节点    Go 编程语言
22 条回复
dyllen
2023-12-20 15:57:14 +08:00
一个配置,竟然会有人往里写?人的问题很大?
smartdoc647
2023-12-25 17:51:38 +08:00
go 官方这个原生 json 库性能确实不太高。普通业务没什么问题,高并发场景官方库性能真不行,比如做日志实时消费不停处理 json 这种,我们压测性能确实一般,不要迷性官方库一定就性能好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1001429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX