ToB企服应用市场:ToB评测及商务社交产业平台

标题: java~graalVM虚拟机 [打印本页]

作者: 大连全瓷种植牙齿制作中心    时间: 2024-5-18 20:10
标题: java~graalVM虚拟机
GraalVM

GraalVM 是一种高性能、通用的虚拟机,由 Oracle 公司开辟。它支持多种编程语言(如 Java、JavaScript、Python 等),并提供了即时编译器、AOT 编译器等功能。GraalVM 的主要特点包罗:
总的来说,GraalVM 是一款功能强大、灵活多样的虚拟机,得当用于构建高性能、多语言混合的应用程序,并且在云计算、大数据等领域有着广泛的应用前景。
GraalVM 和 JVM 的关系

既然叫做VM,那肯定和 JVM 有关系的吧。JVM 全称 Java 虚拟机,我们都知道,Java 程序是运行在虚拟机上的,虚拟机提供 Java 运行时,支持表明实行和部分的(JIT)即时编译器,并且负责分配和管理 Java 运行所需的内存,我们所说的各种垃圾收集器都工作在 JVM 中。
好比 Oracle JDK、OpenJDK ,默认的 JVM 是 HotSpot 虚拟机,这是当前应用最广泛的一个虚拟机。我们平时见到的各种将虚拟机的册本、文章、面试题,基本上都是说的 HotSpot 虚拟机。
除此之外,还有一些商用,大概说小众的虚拟机存在,好比IBM 的J9 JVM,商用的 Zing VM 等。
GraalVM 可以完全代替上面提到的那几种虚拟机,好比 HotSpot。把你之前运行在 HotSpot 上的代码直接平移到 GraalVM 上,不用做任何的改变,乃至都感知不到,项目可以完美的运行。
但是 GraalVM 还有更广泛的用途,不仅支持 Java 语言,还支持其他语言。这些其他语言不仅包罗嫡系的 JVM 系语言,例如 Kotlin、Scala,还包罗例如 JavaScript、Nodejs、Ruby、Python 等。
GraalVM 和JDK有什么关系

AOT编译

AOT(Ahead of Time)编译是一种在程序实行之前将代码编译成本地呆板码的编译方式。与传统的 JIT(Just-In-Time)编译相对应,AOT 编译在程序运行之前就完成了编译过程,天生可实行文件,从而避免了运行时的即时编译开销。
AOT 编译的主要优点包罗:
然而,AOT 编译也存在一些缺点,好比失去了 JIT 编译的动态优化本事,可能导致一些无法被猜测的性能问题;同时,AOT 编译会增长构建和摆设的复杂性,由于需要提前确定编译目标平台等因素。
总的来说,AOT 编译得当于那些对启动速度和内存占用有较高要求的场景,好比移动应用、云原生应用等领域。在 GraalVM 等技能中,AOT 编译得到了广泛的应用,并取得了显著的效果。
springboot打包到graalVM镜像

要将 Spring Boot 程序打包成 Docker 镜像,并使用 GraalVM 作为基础镜像,可以按照以下步调进行利用:
  1. # 使用 GraalVM 作为基础镜像
  2. FROM oracle/graalvm-ce:latest
  3. # 设置工作目录
  4. WORKDIR /app
  5. # 复制编译好的 Spring Boot 可执行文件到镜像中
  6. COPY target/<your-spring-boot-jar>.jar app.jar
  7. # 运行 Spring Boot 应用
  8. CMD ["java", "-jar", "app.jar"]
复制代码
  1. docker build -t your-image-name .
复制代码
其中,your-image-name 是你自定义的镜像名称。
  1. docker run -p 8080:8080 your-image-name
复制代码
这样就可以将 Spring Boot 程序打包成使用 GraalVM 作为基础镜像的 Docker 镜像,并乐成运行在 Docker 容器中了。需要注意的是,GraalVM 提供了适用于 Docker 的基础镜像,可以方便地集成到 Docker 构建流程中。
参考:https://www.cnblogs.com/fengzheng/p/16986535.html

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4