JPMS/Project Jigsaw对小型应用程序/库的好处

kan*_*ics 6 java java-platform-module-system java-9

我了解Java平台模块系统(JPMS)对大型应用程序的好处,但有没有理由将小型库或应用程序转换为(单个)模块?如果是这样,Modular Jar Files是实现这一目标的最佳方法,还是首选的常规方法?

展望未来,模块化的v.类路径程序会有性能影响吗?

Mic*_*ter 9

即时性能影响包括:

  • 模块化应用程序可以选择使用jlink,以便可分发运行时的大小减小:它只使用您需要的模块.因此,如果您不需要Swing,Corba等,它不会驻留在磁盘上.(更多信息在这里).
  • 模块化应用程序使用模块图进行类加载; 这个算法比类路径的线性搜索要快得多(这里有更多信息).

这绝不是保证您的应用程序更快,但上述情况无疑具有吸引力.

从长远来看,考虑一下:

  • 虽然在JDK 9中有实验,但是有一个AOT编译器(对于Linux x64)将java.base模块编译为本机代码.这可能是未来Java版本的发展方向.当然这将改善未来的启动时间.(再次,这里有更多信息)