【问题标题】:Why can't GraalVM native image compiler build an image without any additional information?为什么 GraalVM 原生镜像编译器不能在没有任何附加信息的情况下构建镜像?
【发布时间】:2021-12-19 13:55:39
【问题描述】:

编译器使用一个 JAR 文件:

native-image [options] -jar jarfile [imagename] [options]

所以可以在没有reflect.jsonresources.json 等的情况下扫描所有类和资源。为什么我们需要指定从类路径或通过Java 反射获取的所有文件?在我看来,性能问题超出了范围。因为它会更好地支持任何库,即使它会比可能的慢。

【问题讨论】:

    标签: java jar graalvm graalvm-native-image


    【解决方案1】:

    生成的可执行文件经过优化以运行特定应用程序,而不是任何应用程序。

    主要限制不是包含或不包含什么,而是您无法在运行时加载新类。 任何不依赖于在运行时加载动态生成的类的库/应用程序都可以通过适当的配置得到native-image 的完美支持。

    确实可以包含整个 java.base、所有依赖项...最终的可执行文件将具有更多“功能”,但会牺牲(更大的)大小和编译时间。

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 2020-09-09
      • 2020-12-04
      • 1970-01-01
      • 2020-10-25
      相关资源
      最近更新 更多