版本1.2.44,
老年代配置了500多mb内存,基本被ParserConfig吃光,
其属性deserializers占用内存特别高。
其中占用最高的是FeildInfo这个类
我查看dump日志,deserializers里
com.alibaba.fastjson.util.IdentityHashMap$Entry嵌套一层又一层,
每层进去查看com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer
的FeildInfo和上层都是一样的。
我定义的类
public class DefaultPageable
其中有方法
public T setTotalSize(java.lang.Integer){
//xxxxxx
return (T)this;
}
我发现n多setTotalSize的FeildInfo。
初步怀疑,set方法返回值如果是本身的话,可能无限吃内存
2条答案
按热度按时间6qfn3psc1#
升级到1.2.47试试看?
6gpjuf902#
我也碰到这问题。我fastjson是1.2.54的,不过在另一个文章里面看到温少提示要缓存第二个参数后一语惊醒,改下就好了
Base<XXX> obj = JSON.parseObject(message, new TypeReference<Itg<QuotationDetail>>() { }); 改成 Base<XXX> obj = JSON.parseObject(message, Constants.TYPE_REFER_XXX);