标签: javascript java nashorn
我们维护了CompiledScripts的缓存,以减少Nashorn中的脚本执行时间。 (Java 8x112)
每个CompiledScript实例都有一个用于编译代码的引擎实例。名为objectSpill的对象将保留该引擎的所有作用域级别的对象,从而导致内存泄漏。
在每次执行之前,请确保我们使用单独的绑定来评估CompiledScript。此绑定为ScriptContext.GLOBAL
有什么办法可以避免这种情况?
VisualVM的泄漏堆栈如下所示