使用ehcache缓存gson对象时遇到问题。 gson对象计数开始增加,并且当执行GC时,什么也没有发生。这些对象将继续计数,直到超出GC开销限制为止。
代码1:
ng-mouseleave
这是JVM堆监视器:
但是如果我们缓存String而不是gson对象,那么堆就可以了。 GC可以清除缓存的String对象。
代码2
@RequestMapping(value = "/search2")
@Cacheable(value = "halfHourCache", keyGenerator = "haodfKeyGenerator")
@ResponseBody
public Object search2(BizData bizData, Page page, String sourceType) {
return SearchSourceRunner.search(bizData, page, sourceType, DiseaseKeyWorldFilter.class);
}
问题:
代码1和代码2有什么区别?为什么Code2可以正常工作,但是Code1超出了GC开销限制的异常?