核心是体验下新版本支持情况同时体验下企业特性(g1 gc)
参考示例
就是基于spring start 提供的web,添加了graalvm native 构建支持,graalvm oracle 发行版直接可以官方下载
- pom.xml 核心信息
4.0.0
org.springframework.boot
spring-boot-starter-parent
3.1.1
com.dalong
graalvmappdemo
0.0.1-SNAPSHOT
graalvmappdemo
demo app
17
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.graalvm.buildtools
native-maven-plugin
--enable-monitoring=jfr,jmxserver,jvmstat // 开启了jfr 以及一些监控
--gc=G1 // 使用g1 gc
org.springframework.boot
spring-boot-maven-plugin
- 构建
注意需要一些依赖,比如zlib 以及libstdc++-static 同时因为使用g1 gc 对于gcc 要求有点高,推荐通过centos-release-scl 构建
yum -y install centos-release-scl
yum install -y devtoolset-7-gcc*
scl enable devtoolset-7 bash
mvn clean -Dmaven.test.skip package -Pnative native:build
启动&效果
- 启动
./graalvmappdemo -XX:StartFlightRecording="filename=spring-boot.jfr" -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=xxxxx -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=9996 -Dcom.sun.management.jmxremote.ssl=false
- jmx
- jfr
说明
默认graalvm native-image 使用的是串行gc,对于高负载场景g1 gc 会比较好,以前此功能是需要企业版的,但是最近的license 许可调整,我们可以直接使用了
参考资料
https://www.graalvm.org/latest/reference-manual/native-image/guides/optimize-native-executable-with-pgo/
https://docs.spring.io/spring-boot/docs/3.0.0/reference/htmlsingle/#native-image
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: .Net全网最简RabbitMQ操作【强烈推荐】
【前言】 本文自1年前的1.0版本推出以来,已被业界大量科技公司采用。同时也得到了.Net圈内多位大佬的关注+推荐,文章也被多家顶级.Net/C#公众号转载。 现在更新到了7.0版本,更好的服务各位.Neter。 【正文】 支持.Net/.Net Core…