Closed Thintime closed 1 year ago
jdk 11 还没有测试过,我会调查看看
jdk 11 还没有测试过,我会调查看看
1.8经测试,同样有此问题
你是 oracle jdk 吗? 我在 jdk8 测试没有问题
你是 oracle jdk 吗? 我在 jdk8 测试没有问题
open jdk
同5.3.1版本,openjdk 11.0.8.10,因业务需要脚本需要频繁更新迭代。 废弃的缓存已经调用AviatorEvaluatorInstance#nvalidateCache(cacheKey)卸载,但还是会出现OutOfMemoryError: Metaspace
基于上述demo代码,jdk版本切换至1.8.0_101,循环中新增200ms间隔进行测试,发现Metasoace占用还是会缓慢增加直至OOM,headdump中存在大量名称为类似Script_1664349841614_11750的类(最后一位从0开始)。
收到,感谢反馈,有空会去调查下 openjdk
openjdk 11 和17 都做了尝试,导致OOM的并不是编译,编译产生的class可以正常清理掉; 但是执行阶段有问题,执行时ThreadLocal中产生了大量的com.googlecode.aviator.runtime.function.LambdaFunction 对象示例,无法GC,最终导致OOM
跟这个 issue 有关系 https://github.com/killme2008/aviatorscript/issues/494
近期会修复下
5.3.3 发布,应该解决了这个问题
aviator 版本 5.3.1,jdk11 代码如下
这个程序执行最终会导致 OutOfMemoryError: Compressed class space
但是我看文档是说expression没有引用之后会触发gc卸载内部类,这个错误是啥原因导致的呢