使用Nashorn时大量卸载的LambdaForm类

时间:2018-03-27 07:00:54

标签: java nashorn

我正在构建一个调用自定义Nashorn脚本的框架,该脚本依次注册Predicates,Comparators等。

function init (context)
{
  context.registerFilter("name", function(item) {
    ... Do some filter of item
  });
}

然后在Java端我使用已注册的过滤器。很长一段时间我为很多项目执行此操作时,我看到大量类型 java.lang.invoke.LambdaForm $ DMH / BMH 的卸载类 这是正常的,我是否应该担心将其投入生产?

enter image description here

我尝试过不同的JVM(1.8 u152,u161,u162)都具有相同的行为。

1 个答案:

答案 0 :(得分:2)

Nashorn为JS的每个方法调用,属性set / get生成invokedynamic指令。 JDK生成LambdaForms来处理那些调用的动态指令。您提到卸载了这些类。除非你看到严重的性能问题,否则你无需担心。