前言
5
月20
日,Oracle Java
平台组的首席架构师Mark Reinhold
宣布正式启动Project Leyden
。通过该项目引入静态映像以解决Java
启动缓慢,达到峰值性能的时间慢以及占用空间大等长期痛点。
静态映像
定义
静态映像是一个独立于应用程序的程序,它派生自一个运行该应用程序的应用程序,而非其他应用程序。
特性
静态映像相对于其可以加载的类来说是一个封闭的世界。在运行时,它不能从映像外部加载类,也不能动态的创建类。其封闭世界的约束严格限制了Java
的自然动态力,特别是在运行反射和类加载等方面(许多现有的Java
框架和库都依赖于这些特性)。
Reinhold
也表示:
并非所有的应用程序都适合于这种约束,也不是所有开发人员都愿意接受它。
引入的历程
因为其封闭世界的约束特性,所以Reinhold
一开始并没有采用这种方式,而是通过探索一系列约束,提出了一种渐进的方法,由此产生的优化可能比封闭世界的约束弱,但优化应该适用于更广泛的现有代码。
在此次宣布引入该项目后,Reinhold
还补充称:
从长远来看,
Leyden
项目开发人员可能会采用完全封闭世界的限制来生成完全静态的映像。同时,该项目还将在很大程度上支持现有的
JDK
组件,如JVM
热点、C2
编译器、共享类和应用程序数据以及JLink
代码工具
更多内容,请参考:www.infoworld.com/article/366…