Mark Reinhold
Java platform layers; total of 54 mb:
- compact 1: 11mb: core
- compact 2: 16mb (Jdbc, rmi, jaxp,...)
- compact 3: 30mb (rowset, jdbc, prefs, xmldsig)
- 54mb: javafx, crypto, httpservers, corba...
- + extra tools (jaxws, devtools,...)
Not a perfect solution -> better to make a dependency model of each component (directed graph).
Performance solution needed for:
- fast class lookup
- aggressive inlining
- ahead of time compilation (startup speed)
- JVM-specific memory images
- removal of unused fields/methods/classes
Solution:Jlink (optional tool)
- input: *.jar, *.class, *.jmod
- output: jmod, jar, JVM image
- e.g.:
- jlink -mods javafx,rmi,nashorn -d $JRE
- javac -mods javafx,rmi,nashorn -d classes *.java
- java -mods javafx,rmi,nashorn -jar ...
- requires changes to the Java Runtime: no rt.jar & tools.jar anymore (bad representation for JVM)
Security & modularity
- current setup can't hide some parts. E.g.: sun.misc.Unsafe
- historic checks: java.lang.SecurityManager::checkPackageAccess: no static checks possible
- modules & dependency graph can help validate access to sensitive packages
- some internal packages will be removed -> must be fixed!:
- sun.*
- *.internal.*
No comments:
Post a Comment