标签: substratevm

本机映像何时以及为何需要 SubstrateVM 框架?

我了解了GraalVMSubstrateVM框架。据我了解,该native-image命令可用于从 Java 源文件创建本机应用程序,如下所示:

$ javac Hello.java
$ native-image --no-server --no-fallback Hello
$ ./hello
Hello World!
$
Run Code Online (Sandbox Code Playgroud)

这将创建一个本机二进制文件hello,根据这个问题,它由 SubstrateVM 框架提供支持,该框架提供了...

...在没有 JVM 的情况下实际运行提前编译的 Java 字节码所需的其他东西(运行时)。

我不清楚:

  • 何时以及为何需要 SubstrateVM 框架?仅在本机构建时需要还是在运行时也需要?二进制文件是否hello由纯目标机字节码组成,还是仍然有 Java 字节码和嵌入的成熟虚拟机(即 SubstrateVM)?
  • 与通常的C 程序hello相比,运行本机映像需要哪些开销?Hello World!

java graalvm substratevm graalvm-native-image

8
推荐指数
1
解决办法
1165
查看次数

GraalVM native-image 将 Java 库编译成 iOS 框架/库

GraalVM native-image 允许我们将 Java 库转换为本地可执行文件。它还允许编译为提到的共享库https://www.graalvm.org/docs/Native-Image/user/README

本机映像可以构建为独立的可执行文件,这是默认设置,也可以通过将 --shared 传递给 native-image 来构建为共享库。要使图像有用,它需要至少有一个入口点方法。

我找到的最接近的线程是https://github.com/oracle/graal/issues/373,但仍然找不到任何适用于 iOS 的指南,这可能吗?我可以遵循任何指南吗?

jvm ios graalvm substratevm graalvm-native-image

7
推荐指数
1
解决办法
829
查看次数

如何在 Eclipse 中使用 GraalVM (SubstrateVM) 将 Java 编译为 Native

我有一个研究项目(在 Java 8 中实现),在 Eclipse 中包含几个类、几个主要函数和超过 10000 行代码。当输入不小时,程序就会内存不足。

我想看看如果编译为本机应用程序,它是否会使用更少的堆栈内存。

我没有找到在 Eclipse 中执行此操作的方法。

我做到了,
$GRAALVM_HOME/bin/javac /home/appu/Downloads/2019/June/20/HelloWorld.java
它有效。我得到了一个可以工作的二进制文件。

我尝试了
/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi/decimate/Decimate.class
我得到Main entry point class '/home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi/decimate/Decimate.class' not found.

我尝试了
/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/eclipse-nimi/NimishaGraalEE19/bin/*
我得到Main entry point class '/home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi' not found.

经典

public class HelloWorld
{
    public static void main(String[] args)
    {
        System.out.println("Hello, World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

被编译成“HelloWorld.class”

它给出了一个可执行文件“helloworld”,它是可执行的(application/x-executable)。

我可以从 Eclipse 得到同样的东西吗?对于多类文件,我可以从命令行获得相同的结果吗?

当我将上面的代码更改为

public class HelloWorld
{
    public static void hello()
    {
        System.out.println("Hello, World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

并添加另一个类

public class Main
{
    public static void …
Run Code Online (Sandbox Code Playgroud)

java eclipse graalvm substratevm

5
推荐指数
1
解决办法
3718
查看次数

为什么 GraalVM (SubstrateVM) 本机映像在运行时使用的内存比相应的 JIT 构建少得多?

我想知道为什么 Java 应用程序的 GraalVM (SubstrateVM) 本机映像使其运行时运行时行为将消耗更少的内存,但如果正常运行,它将消耗更多的内存?

为什么普通的 JIT 不能同样消耗少量内存?

jvm graalvm substratevm graalvm-native-image

4
推荐指数
1
解决办法
3976
查看次数

我如何以某种方式运行 Substrate,以便为开发贫民立即验证交易?

我如何以假验证模式运行Substrate以用于开发目的(是否有类似于--devgeth中立即挖掘交易的东西)?

parity blockchain parity-io substrate substratevm

1
推荐指数
1
解决办法
101
查看次数