我正在构建一个调用自定义Nashorn脚本的框架,该脚本依次注册Predicates,Comparators等。
即
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)都具有相同的行为。
答案 0 :(得分:2)
Nashorn为JS的每个方法调用,属性set / get生成invokedynamic指令。 JDK生成LambdaForms来处理那些调用的动态指令。您提到卸载了这些类。除非你看到严重的性能问题,否则你无需担心。