graalvm 拯救生命,速速入手

简介: graalvm 拯救生命,速速入手

graalvm 拯救生命,速速入手

标题很夸张,graalvm怎么就拯救生命了?把一个启动5-6秒的项目加速到3秒启动,不就是在拯救生命,拯救发际线吗?

我在上一篇博客"SpringBoot3.0工程建立"末尾启动了工程,其启动时间为6.2s,多次尝试也在5.5s以上。但是graalvm 可以使启动时间降低为3秒。

graalvm官网下载


当前最新版为GraalVM Community 22.3,使用官网首页下载命令进行下载,会获得jdk 17版本的graalvm。当然,仍然需要能够连接到github。其包大小在284M,比一般JVM大许多,毕竟支持那么多语言运行。

如若下载进不去,需要安装包,可添加wx: wanglhup 备注 csdn

bash <(curl -sL https://get.graalvm.org/jdk)

如果手动下载的包,使用tar -xzvf xxx.tar,gz 进行解压即可。使用命令的会自动解压,并尝试配置你的环境变量,JAVA_HOME。

进入其目录,应如下:

dark@dark:~/.jdks/gvm/graalvm-ce-java17-22.3.0$ ls -al
总用量 448
drwxrwxr-x 10 dark dark   4096 12月 20 00:41 .
drwxr-xr-x  3 dark dark   4096 12月 20 00:41 ..
drwxrwxr-x  2 dark dark   4096 12月 20 00:41 bin
drwxrwxr-x  5 dark dark   4096 12月 20 00:41 conf
-rw-rw-r--  1 dark dark   1611 10月 20 18:42 GRAALVM-README.md
drwxrwxr-x  3 dark dark   4096 12月 20 00:41 include
drwxrwxr-x  2 dark dark   4096 12月 20 00:41 jmods
drwxrwxr-x  6 dark dark   4096 12月 20 00:41 languages
drwxrwxr-x 72 dark dark   4096 12月 20 00:41 legal
drwxrwxr-x 13 dark dark   4096 12月 20 00:41 lib
-rw-rw-r--  1 dark dark  21035 12月 19 23:47 LICENSE_NATIVEIMAGE.txt
-rw-rw-r--  1 dark dark  23491 10月 20 18:42 LICENSE.txt
-rw-rw-r--  1 dark dark   4128 10月 20 19:09 release
-rw-rw-r--  1 dark dark 354225 10月 20 18:42 THIRD_PARTY_LICENSE.txt
drwxrwxr-x  9 dark dark   4096 12月 20 00:41 tools

验证JAVA版本

在graalvm的bin目录下执行命令验证java版本,当前的版本为17.0.5

dark@dark:~/.jdks/gvm/graalvm-ce-java17-22.3.0/bin$ ./java -version
openjdk version "17.0.5" 2022-10-18
OpenJDK Runtime Environment GraalVM CE 22.3.0 (build 17.0.5+8-jvmci-22.3-b08)
OpenJDK 64-Bit Server VM GraalVM CE 22.3.0 (build 17.0.5+8-jvmci-22.3-b08, mixed mode, sharing)

IDE切换JAVA版本

  1. 使用快捷键ctrl+shift+alt+s。或者依次点击:文件->项目结构,并在平台设置->SDK中加入我们刚解压好的graalvm,如图:

  1. 在项目中,将sdk选择为我们刚引入的graalvm-17

启动项目

执行Application中的main方法来验证一下启动速度:

/home/dark/.jdks/gvm/graalvm-ce-java17-22.3.0/bin/java org.dark.migration.MigrationApplication
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.0.0)
2022-12-20T01:06:02.552+08:00  INFO 10606 --- [           main] o.dark.migration.MigrationApplication    : Starting MigrationApplication using Java 17.0.5 with PID 10606 (/home/dark/code/migration/target/classes started by dark in /home/dark/code/migration)
2022-12-20T01:06:02.561+08:00  INFO 10606 --- [           main] o.dark.migration.MigrationApplication    : No active profile set, falling back to 1 default profile: "default"
2022-12-20T01:06:03.276+08:00  INFO 10606 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2022-12-20T01:06:03.299+08:00  INFO 10606 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12 ms. Found 0 JPA repository interfaces.
2022-12-20T01:06:03.941+08:00  INFO 10606 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2022-12-20T01:06:04.550+08:00  INFO 10606 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2022-12-20T01:06:04.611+08:00  INFO 10606 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2022-12-20T01:06:04.669+08:00  INFO 10606 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.1.5.Final
2022-12-20T01:06:05.420+08:00  INFO 10606 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2022-12-20T01:06:05.822+08:00  INFO 10606 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2022-12-20T01:06:05.832+08:00  INFO 10606 --- [           main] o.dark.migration.MigrationApplication    : Started MigrationApplication in 3.832 seconds (process running for 4.358)

可以看到启动速度仅3.8s,有效挽救了博主的顶上三毛。

目录
相关文章
|
6月前
|
存储 JavaScript 前端开发
“纯血鸿蒙”要来了,赶紧入手学习吧
1月18日,华为宣布HarmonyOSNEXT鸿蒙星河版面向开发者开放申请,这一最新版本的鸿蒙系统也被喻为“纯血鸿蒙”。赶紧入手学习吧
368 1
|
6月前
|
缓存 分布式计算 算法
码农死磕这份Java高级开发文档,成功'挤'进一线大厂,这也太强了吧
拿到一份offer比什么都重要,所以笔者专门花了近一个月的时间整理好了一份专门为Java面试而生的总结,注意的是笔者仅仅对面试技术方面的题目进行的总结,至于如何去和面试官去聊,怎么聊,聊得嗨,这里笔者就不谈了,因为这方面并不是笔者擅长的。
|
6月前
|
机器人 程序员 C++
Scratch3.0——助力新进程序员理解程序(难度案例一、节奏大师)
Scratch3.0——助力新进程序员理解程序(难度案例一、节奏大师)
99 0
|
设计模式 SpringCloudAlibaba 负载均衡
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
前几天,就有不少小伙伴问我,冰河,你星球有哪些项目呢?我想肝你星球的项目,可以吗?今天,我就给大家简单聊聊我星球里有哪些系统性的项目吧。其实,每一个项目的价值都会远超门票。
153 0
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
|
Arthas 监控 Java
|
2月前
|
Java 编译器 Maven
【颠覆你的认知!】当Quarkus邂逅GraalVM本机镜像,应用启动竟快到飞起——背后的技术秘密等你揭秘!
Quarkus框架因轻量级与高性能而在Java开发社区广受关注。结合GraalVM使用能显著提升应用启动速度与运行效率,这得益于GraalVM的本机镜像支持。本文将介绍如何利用Quarkus和GraalVM构建高效应用,并提供示例代码演示具体步骤。首先需安装GraalVM环境并配置Maven支持构建本机镜像。接着创建一个简单的RESTful服务端点作为示例,通过命令行编译生成本机可执行文件并运行。这种方式能够大幅提升应用性能,但需注意构建时间和部分Java特性兼容性问题。
44 1
|
3月前
|
开发者 CDN 监控
【破局·提速】当Vaadin遇上性能怪圈:开发者的智慧较量与极速加载的实战秘籍!
【8月更文挑战第31天】本文详细介绍了优化Vaadin应用性能的方法,特别是提高加载速度的实战技巧。首先分析性能瓶颈,如服务器响应时间和数据库查询效率等;然后通过代码优化、数据分页与急切加载技术减少资源消耗;接着利用资源压缩合并及CDN加速,进一步提升加载速度;最后通过持续性能监控和测试确保优化效果。通过综合应用这些策略,可显著改善用户体验。
77 0
|
3月前
|
开发者 前端开发 Apache
【绝不错过!】揭秘Wicket大神级插件,带你飞越编程极限,探索Web应用开发新大陆!
【8月更文挑战第31天】Apache Wicket是一个成熟的Java Web框架,以其组件化体系结构、直观的API及对MVC的支持著称。其活跃社区贡献了大量插件和扩展,显著提升了Wicket的功能性。本文推荐几个实用插件,如**Wicket Ajax Support**,可轻松添加Ajax功能,提升用户体验;**Bootstrap for Wicket**则将Bootstrap与Wicket结合,美化应用界面。
37 0
|
Cloud Native Java Go
JDK17:未来已来,你准备好了吗?
JDK17:未来已来,你准备好了吗?
85 0
|
Windows
谈一谈|下载软件的门道你懂吗?
谈一谈|下载软件的门道你懂吗?
134 0
下一篇
无影云桌面