java在微服务/云原生时代的困境
java总体上是面向大规模、长时间的服务端应用而设计。
微服务时代对启动速度、达到最高性能的时间提出了新的要求。
问题根源:
java离不开虚拟机JVM
解决方案:
- 干掉java (Go语言)
- 在原有的基础上改进,graalVM
graalVM是一个高性能JDK发现版
https://www.graalvm.org
成为一统天下的最终虚拟机。
目前社区版和企业版都是免费的。
graalVM是一款高性能的可嵌入式多语言虚拟机,能运行不同的编程语言。
graalVM的设计目标是可以在不同的环境中运行程序。
在jvm 中;
编译成独立的本地镜像;
gu install native -image (本地镜像需要的插件)
C2的bug
C2需要预热;
graalVM不需要预热;
Spring 6 22年6月发布;
Spring boot 3
基于jdk17
AOT技术
提前编译, ahead of time
类似于C++的编译。
框架:
loom
协程》另一种支持并发的方式
java中的线程:
创建用户线程,实际执行是内核线程;
1:1线程模型;
用户线程和内核线程切换,上下文切换;
协程:
改变1对1模型,减少内核态。
Kilim协程框架
通过邮箱的方式,进行交互。
框架的目的,减少上下文切换。
Kilim只适合了解。