GraalVM介绍

GraalVM 是一款由 Oracle 开发的高性能的虚拟机,能够支持多种编程语言(包括 Java、JavaScript、Ruby、Python、R 和 C++等),同时也能够运行基于 LLVM 的原生代码。GraalVM 允许将不同语言的代码混合在一起,并在一个共享的运行时环境中同时运行,从而实现更高效的集成和协同工作。

GraalVM 最重要的特点是其高性能。由于其采用了即时编译技术(JIT),并且能够对多种语言进行优化,因此能够比传统的虚拟机实现更快的执行速度。此外,GraalVM 还提供了 Ahead-of-Time(AOT)编译器,可以将程序预先编译为本地代码,进一步提高程序的性能和启动速度。

除此之外,GraalVM 还提供了许多有用的工具和功能,例如支持多线程的垃圾回收器、低延迟的实时编译器、本地图形界面(GUI)工具、内存管理和诊断工具等,使其成为一款非常强大和灵活的开发工具。

安装

官网介绍如下:

graalvm python graalvm python编译_graalvm python


window、mac、linux都可以下载安装,详情可查官网文档链接,sdk下载完成后配置环境变量,出现如下截图说明安装成功

graalvm python graalvm python编译_windows_02

Native Image介绍

Native Image是GraalVM的一项功能,它可以将Java应用程序编译成本地可执行文件,从而提高应用程序的启动和执行速度。使用Native Image可以避免JIT编译和动态类加载等Java应用程序启动时的开销,同时还可以将应用程序的内存占用和二进制文件大小减小到最小。Native Image支持在Linux、macOS和Windows等平台上生成本地可执行文件,还支持生成包含嵌入式JavaScript引擎的本地可执行文件。然而,由于编译过程需要访问整个应用程序的代码路径和运行时信息,因此生成本地可执行文件可能需要进行一些配置和调试工作。
通过

安装Native Image

GraalVM 默认情况下不会安装 Native Image 组件,因此您需要手动安装它。您可以使用以下命令安装 Native Image 组件:

gu install native-image

这将下载并安装 Native Image 组件。

安装完成后,您可以使用以下命令验证是否成功安装了 Native Image:

native-image --version

window准备Visual Studio

安装GraalVM需要的的核心库如下图所示:

graalvm python graalvm python编译_graalvm python_03


注意安装语言包的时候安装英语否则打包的时候会报错

安装完成后会出现X64的cmd命令窗口,接下来的打包都是基于x64的cmd命令窗口完成

graalvm python graalvm python编译_windows_04

打包

准备spring3.0的项目,选择native-maven-plugin

<build>
        <plugins>
            <plugin>
                <groupId>org.graalvm.buildtools</groupId>
                <artifactId>native-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

通过x64cmd命令窗口执行如下命令

mvn -Pnative native:compile

打包完成后会出现exe的启动包,打包过程有点慢需要等待

graalvm python graalvm python编译_graalvm python_05


graalvm python graalvm python编译_Image_06


注意需要配置JAVA_HOME到指定的GraalVM的sdk否则会打包错误 ‘gu.cmd’ tool wasn’t found. This probably means that JDK at isn’t a GraalVM distribution的错误