我正在构建一个调用自定义Nashorn脚本的框架,这些脚本依次注册Predicates,Comparators等。
IE浏览器。
function init (context)
{
context.registerFilter("name", function(item) {
... Do some filter of item
});
}
然后在Java端我使用已注册的过滤器。很长一段时间,当我为很多项目做这件事时,我看到大量的java.lang.invoke.LambdaForm $ DMH / BMH类型的卸载类这是正常的,我应该担心这个生产吗?
我尝试过具有相同行为的不同JVM(1.8 u152,u161,u162)。
Nashorn为JS的每个方法调用,属性集/ get生成invokedynamic指令。 JDK生成LambdaForms来处理那些调用的动态指令。您提到卸载了这些类。除非你看到严重的性能问题,否则你无需担心。