1- # SpringBoot3.2 + jdk21 + GraalVM上手体验
1+ # springBoot3.2 + jdk21 + GraalVM上手体验
2+ SpringBoot2.x官方已经停止维护了,jdk8这次真的得换了🤣
23
3- > 参考官方文章进行体验:https://spring.io/blog/2023/09/09/all-together-now-spring-boot-3-2-graalvm-native-images-java-21-and-virtual
4+
5+ > - 可以参考官方文章进行体验:https://spring.io/blog/2023/09/09/all-together-now-spring-boot-3-2-graalvm-native-images-java-21-and-virtual
46>
5- > 可以通过官方快速得到一个基于jdk21的项目 :https://start.spring.io/
7+ > - 通过官方快速得到一个基于jdk21的项目 :https://start.spring.io/
68
79## 快速体验(二进制部署)
810
@@ -27,7 +29,7 @@ public class DemoApplication {
2729
2830启动非常快,秒启动
2931
30- ![ image-20231201173556211] ( https://cdn.fengxianhub.top/resources-master/image-20231201173556211 .png )
32+ ![ image-20231201173556211] ( https://img-blog.csdnimg.cn/img_convert/6177751a91e71fbf42a294d5c0d712e0 .png )
3133
3234压测环境内存占用大概` 70MB ` 左右,空闲时在` 20MB ` 左右(由于直接打成二进制文件了,不能再使用jconsole、arthas之类的进行监控了),性能上由于不需要JVM预热,性能启动即巅峰。
3335
@@ -59,13 +61,13 @@ Waiting: 0 4 5.6 3 145
5961Total: 1 7 10.4 6 149
6062` ` `
6163
62- ! [image-20231201173732084](https://cdn.fengxianhub.top/resources-master/image-20231201173732084 .png)
64+ ! [image-20231201173732084](https://img-blog.csdnimg.cn/img_convert/1ce803696e706e607860c9c1ed3a8a16 .png)
6365
6466# # 快速体验(jar部署)
6567
6668jar包占用只有19MB,已经不能算是小胖jar了😊
6769
68- ! [image-20231201175815773](https://cdn.fengxianhub.top/resources-master/image-20231201175815773 .png)
70+ ! [image-20231201175815773](https://img-blog.csdnimg.cn/img_convert/c5234d582cfb7b3185f87db7661f7d03 .png)
6971
7072内存占用在压测时大概在200MB左右,空闲时在160MB左右。性能显然也不是启动即巅峰,可以看出其实还是需要进行JVM预热才能达到性能巅峰的
7173
@@ -97,7 +99,7 @@ Waiting: 0 12 88.7 6 1771
9799Total: 1 53 439.0 10 7011
98100` ` `
99101
100- ! [image-20231201180038447](https://cdn.fengxianhub.top/resources-master/image-20231201180038447 .png)
102+ ! [image-20231201180038447](https://img-blog.csdnimg.cn/img_convert/3dedb4ca21d5c5212ba2cb343571f02d .png)
101103
102104
103105
@@ -129,7 +131,7 @@ func main() {
129131}
130132` ` `
131133
132- 这里golang没有使用框架,仅使用标准库,所以内存占用较低,仅10MB左右,即使使用Gin之类的web框架 ,内存也不会超过20MB
134+ 这里golang没有使用框架,仅使用标准库,所以内存占用较低,仅 ` 10MB ` 左右,不过即使使用Gin之类的web框架 ,内存也不会超过20MB
133135
134136` ` ` shell
135137$ ab -c 50 -n 10000 http://localhost:8080/customers
@@ -159,7 +161,7 @@ Waiting: 0 2 10.5 2 459
159161Total: 1 7 32.3 4 462
160162` ` `
161163
162- ! [image-20231201174441704](https://cdn.fengxianhub.top/resources-master/image-20231201174441704 .png)
164+ ! [image-20231201174441704](https://img-blog.csdnimg.cn/img_convert/87713526e30e27ca4d410070daafb7ee .png)
163165
164166# # 对比Rust
165167
@@ -231,9 +233,9 @@ cargo build 213.00s user 23.08s system 258% cpu 1:31.39 total
231233
232234# # 结论
233235
234- AOT-processed已经相对成熟,效果可以说非常惊艳,解决了` JVM` 启动慢、需要预热、内存占用大的问题 。
236+ AOT-processed已经相对成熟,效果可以说非常惊艳,解决了` JVM` 启动慢、需要预热、内存占用大等问题 。
235237
236- 美中不足的是编译速度非常慢,笔者电脑2017款mac book pro编译花费大概15分钟左右
238+ 美中不足的是编译速度非常慢,笔者电脑是2017款mac book pro编译花费大概15分钟左右
237239
238240` ` ` shell
239241Finished generating ' demo' in 14m 33s.
@@ -245,4 +247,10 @@ Finished generating 'demo' in 14m 33s.
245247[INFO] ------------------------------------------------------------------------
246248` ` `
247249
248- 可以看出java在云原生大环境下已经取得了不错的进步的
250+ ------------
251+ [INFO] Total time: 15:45 min
252+ [INFO] Finished at: 2023-12-01T17:00:21+08:00
253+ [INFO] ------------------------------------------------------------------------
254+ ` ` `
255+
256+ 可以看出java在云原生大环境下已经取得了不错的进步的
0 commit comments