Estoy tratando de comprender el rendimiento de mi JavaScript que se ejecuta dentro de una aplicación Java, pero no puedo encontrar una manera de pasar las opciones de Truffle a través de las interfaces de Java como Bindings (cuando está en el modo de compatibilidad con Nashorn) y Context.
Específicamente, estoy tratando de activar la información de compilación --engine.TraceCompilation mencionada en: https://www.graalvm.org/22.1/graalvm-as-a-platform/language-implementation-framework/Options/
pero todo lo que encuentro son ejemplos como este:
ScriptEngine js = scriptEngineManager.getEngineByName("graal.js"); Bindings bindings = js.getBindings(ScriptContext.ENGINE_SCOPE); bindings.put("polyglot.js.allowHostAccess", true); bindings.put("polyglot.js.nashorn-compat", true); // ------- I want to do something like this: ----------- bindings.put("polyglot.js.engine.TraceCompilation", true); // <-- does not work //--------------------------------------------------------Esta guía menciona la lista de opciones que se pueden pasar de esta manera y no se enumera ninguna de las opciones de Truffle: https://www.graalvm.org/22.1/reference-manual/js/ScriptEngine/
Tenga en cuenta que, por razones heredadas, necesito usar el modo de compatibilidad de Nashorn para ejecutar el código JavaScript.
como dice la documentación, esas son opciones de inicio de idioma . Por lo general, los proporcionaría a un lanzador como js , nodo o similar.
$ js --engine.TraceCompilation yourJSFile.jsComo parece comenzar desde Java, también puede proporcionarlos al proceso de Java con propiedades del sistema (preprendiendo políglota y proporcionando explícitamente verdadero para las opciones booleanas):
$ java -Dpolyglot.engine.TraceCompilation=true yourJavaClassNo creo que pueda proporcionar esas opciones tan tarde como en los enlaces del idioma, porque no deberían afectar el idioma sino el sistema GraalVM en general. (esta es también la razón por la que su polyglot.js.engine.TraceCompilation está desactivada; la opción no tiene nada que ver con js )
HTH, cristiano