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,有效挽救了博主的顶上三毛。

目录
相关文章
|
3月前
|
存储 JavaScript 前端开发
“纯血鸿蒙”要来了,赶紧入手学习吧
1月18日,华为宣布HarmonyOSNEXT鸿蒙星河版面向开发者开放申请,这一最新版本的鸿蒙系统也被喻为“纯血鸿蒙”。赶紧入手学习吧
231 1
|
3月前
|
机器人 程序员 C++
Scratch3.0——助力新进程序员理解程序(难度案例一、节奏大师)
Scratch3.0——助力新进程序员理解程序(难度案例一、节奏大师)
78 0
|
11月前
|
设计模式 SpringCloudAlibaba 负载均衡
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
前几天,就有不少小伙伴问我,冰河,你星球有哪些项目呢?我想肝你星球的项目,可以吗?今天,我就给大家简单聊聊我星球里有哪些系统性的项目吧。其实,每一个项目的价值都会远超门票。
125 0
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
|
消息中间件 缓存 安全
讲理论,重实战!阿里独家SpringBoot王者晋级之路小册,太强了!
大家平时学习SpringBoot的方式也一般是看大量博客或者是找一些业界评价好点的书籍,虽然SpringBoot相关资料很多,但是大多不成体系,很少有真正有能从0到1,详解Spring Boot一切从代码案例出发的案头笔记。 今天给小伙伴分享的就是来自阿里的SpringBoot王者晋级之路小册,这份小册从SpringBoot的开发环境部署开始,把Spring Boot搭建Web项目、操作数据库、使用缓存、日志、整合安全框架、结合消息队列和搜索框架,以及在实际应用中的部署全部讲得清清楚楚。
|
编解码 iOS开发
一节微课诞生的全过程(无保留分享,望收藏)
本来是想以直播的方式把制作这节微课的过程分享出来,但考虑到大家的时间不统一,制作过程太长,这节微课录音之后制作动画就足足用了两天
172 0
|
自然语言处理 搜索推荐 安全
想知道企业需不需要大热的Sitecore CMS,弄清楚这十点就够了!
毫无疑问对于企业来说,数字化转型是长期霸榜的热门话题。而这其中Sitecore又凭借着个性化数字体验、全渠道数据洞察、自动化数字营销成为了这一话题的中心。
139 0
|
监控 前端开发 jenkins
新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞
带团队时间久了,就能发现整个 Team 都渐渐疲了。前两年老板还专门买了个系统搞 OKR,现在也不大提了;Scrum 我们也搞了,用起来也就那样;项目管理工具试了好几个,禅道、Worktile、现在用 Coding,反正有一个能用的就行;微服务化改造从去年开始在吭哧吭哧搞,我们自己搞得觉得很厉害,但业务部门那边就觉得没啥差别,搞不懂你们研发部门每天在弄些什么,赶紧做我们提的需求要紧。
新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞
|
程序员 开发工具 Android开发
我奇怪的安卓开发历程(内含本人不太成熟的技术观)(三)
半年的开发工作通过统计git的提交记录发现其实我提交行数最多的项目也就1228行:
|
前端开发 Android开发
我奇怪的安卓开发历程(内含本人不太成熟的技术观)(四)
工作一天下来,最大的收获便是我发现项目写了半年我还是不知道这是个啥架构的,通过几次和同事沟通交流,以及浏览许多介绍和实例MVP、MVVM架构的文章,还是不了了之,当然,不能否认的是同事认为这是MVP架构的项目,我也挺倾向这个观点。
|
存储 Android开发
我奇怪的安卓开发历程(内含本人不太成熟的技术观)(二)
初出茅庐的我在开发工作中成长,收获了许多,但其实也引出了一堆问题。