如何找到在GraalVM上运行的给定项目中使用的语言?

时间:2019-11-14 17:20:30

标签: devops graalvm

说我的团队正在研究一个多语言项目,其中不同的开发人员正在使用各种基于JVM的(Scala,Kotlin)或动态语言(JavaScript,Ruby,Python)语言。作为一名Devops工程师,我想知道在用GraalVM运行/执行的给定项目中使用了哪种语言。

GraalVM SDK内置了什么支持,我可以利用它并哈希出一个快速脚本吗?

1 个答案:

答案 0 :(得分:1)

实际上,基于JVM的语言在编译后是无法区分的,即它们都是字节码。

就动态语言而言,您可以检查安装了哪些语言(例如,https://www.graalvm.org/truffle/javadoc/org/graalvm/polyglot/Engine.html#getLanguages--),但这并不意味着它们实际上已经全部使用(或其中的任何一种)。

要检查执行过程中实际使用的语言,可以开发一种松露工具(https://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/instrumentation/TruffleInstrument.html),该工具会在加载新资源(https://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/instrumentation/LoadSourceListener.html)时记下该语言的语言。来源(https://www.graalvm.org/truffle/javadoc/com/oracle/truffle/api/source/Source.html#getLanguage--),允许人们随时检查到目前为止使用了哪种Truffle语言。