最近一个ws服务,出现内存高问题。通过pprof查看了一下是json在序列化时候内存很高。后来我换成了easyjson,也没有解决这个问题,我想是不是我分配对象过多,然后我使用了对象池,问题依旧没有得到解决。这个服务数据量是很大,推送出去的数据大小也不固定,小到几b,大到十几kb,一两Mb的都有。看了一下easyjson源码,底层也是维护了一个缓冲池,会根据分配的不用size给出对应的缓冲池。但是我就没想通为什么内存会这么高。下面是一些高内存图片:
![image.png](https://static.golangjob.cn/221110/84c840b63cc519833a010cba9f987d06.png)
这是heap图片
![image.png](https://static.golangjob.cn/221110/09489239579c9342a27d0f02333b5e84.png)
这个是监控的内存数据,每个一段时间就几百MB的涨。
问题是,其他类型的ws服务没有这问题,就这个数据量大点的服务有问题。
有人遇到同样的情况吗?
有疑问加站长微信联系(非本文作者))