最近,我们的一些生产JVM出现了问题,这些JVM非常频繁地用于GC并且需要很长时间的gc暂停。在查看堆转储后,似乎在最近的构建中引入了一个新类,它在json对象中存储了大量的产品数据,从而导致了这种情况。
这个类基本上从多个源获取数据,并基于此构建json对象。 我们可以看到这些json对象在堆空间中被保存为char [],占用了近25%的空间。问题是这个类每次调用方法时都会创建json对象。因此,对于同一产品,它会创建多个json对象并快速填充堆空间。
我们可能需要使用某种类型的缓存,但网站上有大量产品。有什么建议我们如何更好地处理这个问题?