java反射+fastjson 导致PermGen内存不断增加

kwvwclae  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(107)

for(int i = 0;i<10;i++){
Method method = Test.class.getMethod("getMsgListByUid", String.class);
Object object = JSON.parseObject(str,method.getGenericReturnType());
}

public interface Test {
ResultObject getMsgListByUid(String str);
}
public class ResultObject{
private T data;
}
public class UserMsgListModel{
private int id;
}

这样的用例,在parse泛型对象时,每次都去重新创建JavaBeanDeserializer,原因是每次的method是一个新的实例,导致fastjson的int hash = System.identityHashCode(key);每次的hash不同,然后去创建新的JavaBeanDeserializer,试了最新版也是这样,可以在业务层面缓存method,每次使用同一个,fastjson能不能解决这个呢?

r6l8ljro

r6l8ljro1#

可以升级到1.2.83版本或者2.0.23版本解决这个问题

相关问题