11# springBoot3.2 + jdk21 + GraalVM上手体验
2+ SpringBoot2.x官方已经停止维护了,jdk8这次真的得换了🤣
3+ ![ 在这里插入图片描述] ( C:\Users\Administrator\Desktop\288ddca5fcae458faf479d3e55f70efd.png )
24
3- > 参考官方文章进行体验:https://spring.io/blog/2023/09/09/all-together-now-spring-boot-3-2-graalvm-native-images-java-21-and-virtual
5+
6+ > - 可以参考官方文章进行体验:https://spring.io/blog/2023/09/09/all-together-now-spring-boot-3-2-graalvm-native-images-java-21-and-virtual
47>
5- > 可以通过官方快速得到一个基于jdk21的项目 :https://start.spring.io/
8+ > - 通过官方快速得到一个基于jdk21的项目 :https://start.spring.io/
69
710## 快速体验(二进制部署)
811
@@ -27,9 +30,9 @@ public class DemoApplication {
2730
2831启动非常快,秒启动
2932
30- ![ image-20231201173556211] ( https://cdn.fengxianhub.top/resources-master/image-20231201173556211 .png )
33+ ![ image-20231201173556211] ( https://img-blog.csdnimg.cn/img_convert/6177751a91e71fbf42a294d5c0d712e0 .png )
3134
32- 压测环境内存占用大概70MB左右,空闲时在20MB左右 (由于直接打成二进制文件了,不能再使用jconsole、arthas之类的进行监控了),性能上由于不需要JVM预热,性能启动即巅峰。
35+ 压测环境内存占用大概 ` 70MB ` 左右,空闲时在 ` 20MB ` 左右 (由于直接打成二进制文件了,不能再使用jconsole、arthas之类的进行监控了),性能上由于不需要JVM预热,性能启动即巅峰。
3336
3437``` shell
3538$ ab -c 50 -n 10000 http://localhost:8080/customers
@@ -59,13 +62,13 @@ Waiting: 0 4 5.6 3 145
5962Total: 1 7 10.4 6 149
6063` ` `
6164
62- ! [image-20231201173732084](https://cdn.fengxianhub.top/resources-master/image-20231201173732084 .png)
65+ ! [image-20231201173732084](https://img-blog.csdnimg.cn/img_convert/1ce803696e706e607860c9c1ed3a8a16 .png)
6366
6467# # 快速体验(jar部署)
6568
6669jar包占用只有19MB,已经不能算是小胖jar了😊
6770
68- ! [image-20231201175815773](https://cdn.fengxianhub.top/resources-master/image-20231201175815773 .png)
71+ ! [image-20231201175815773](https://img-blog.csdnimg.cn/img_convert/c5234d582cfb7b3185f87db7661f7d03 .png)
6972
7073内存占用在压测时大概在200MB左右,空闲时在160MB左右。性能显然也不是启动即巅峰,可以看出其实还是需要进行JVM预热才能达到性能巅峰的
7174
@@ -97,7 +100,7 @@ Waiting: 0 12 88.7 6 1771
97100Total: 1 53 439.0 10 7011
98101` ` `
99102
100- ! [image-20231201180038447](https://cdn.fengxianhub.top/resources-master/image-20231201180038447 .png)
103+ ! [image-20231201180038447](https://img-blog.csdnimg.cn/img_convert/3dedb4ca21d5c5212ba2cb343571f02d .png)
101104
102105
103106
@@ -129,7 +132,7 @@ func main() {
129132}
130133` ` `
131134
132- 这里golang没有使用框架,仅使用标准库,所以内存占用较低,仅10MB左右,即使使用Gin之类的web框架 ,内存也不会超过20MB
135+ 这里golang没有使用框架,仅使用标准库,所以内存占用较低,仅 ` 10MB ` 左右,不过即使使用Gin之类的web框架 ,内存也不会超过20MB
133136
134137` ` ` shell
135138$ ab -c 50 -n 10000 http://localhost:8080/customers
@@ -159,13 +162,13 @@ Waiting: 0 2 10.5 2 459
159162Total: 1 7 32.3 4 462
160163` ` `
161164
162- ! [image-20231201174441704](https://cdn.fengxianhub.top/resources-master/image-20231201174441704 .png)
165+ ! [image-20231201174441704](https://img-blog.csdnimg.cn/img_convert/87713526e30e27ca4d410070daafb7ee .png)
163166
164167# # 结论
165168
166- AOT-processed已经相对成熟,效果可以说非常惊艳,解决了` JVM` 启动慢、需要预热、内存占用大的问题 。
169+ AOT-processed已经相对成熟,效果可以说非常惊艳,解决了` JVM` 启动慢、需要预热、内存占用大等问题 。
167170
168- 美中不足的是编译速度非常慢,笔者电脑2017款mac book pro编译花费大概15分钟左右
171+ 美中不足的是编译速度非常慢,笔者电脑是2017款mac book pro编译花费大概15分钟左右
169172
170173` ` ` shell
171174Finished generating ' demo' in 14m 33s.
@@ -177,4 +180,10 @@ Finished generating 'demo' in 14m 33s.
177180[INFO] ------------------------------------------------------------------------
178181` ` `
179182
183+ ------------
184+ [INFO] Total time: 15:45 min
185+ [INFO] Finished at: 2023-12-01T17:00:21+08:00
186+ [INFO] ------------------------------------------------------------------------
187+ ` ` `
188+
180189可以看出java在云原生大环境下已经取得了不错的进步的
0 commit comments