STM32在上面运行Java虚拟机确实惊人
STM32在上面运行Java虚拟机确实惊人,但实现了这一点的是特殊优化的Java虚拟机版本,如MicroEJ或JamaicaVM等,它们都是专门为嵌入式系统设计的。
这种Java虚拟机的大小能够做到如此之小(上到几十KB)主要是因为以下全面策略:
-
功能适配:不同于标准的Java虚拟机,这些虚拟机只包含适用于嵌入式应用的JVM特性实现。Java标准函式库(Java SE)的一些复杂特性,如网络协议、图形用户界面、复杂的数据处理等通常都被精简掉,或者替换为更小更简单的API。
-
优化:有针对性的做了许多底层优化,以最大程度地减少引擎的内存占用。例如,Java字节码解释器和即时编译器可能会被优化,以减少它们的内存要求。
-
特殊编码技术:对适用于嵌入式设备的编码和压缩技术进行了利用,将引擎存储在非常小的内存空间里。
请注意,尽管这些实现使得Java虚拟机能在资源有限的环境如STM32中运行,但这样的大小通常是通过牺牲一些功能和性能实现的。