On 15/05/2015 16:45, Jim Laskey (Oracle) wrote:
http://cr.openjdk.java.net/~jlaskey/jdk9-jimage/top/ 
<http://cr.openjdk.java.net/~jlaskey/jdk9-jimage/top/>
http://cr.openjdk.java.net/~jlaskey/jdk9-jimage/hotspot/ 
<http://cr.openjdk.java.net/~jlaskey/jdk9-jimage/hotspot/>
http://cr.openjdk.java.net/~jlaskey/jdk9-jimage/jdk/ 
<http://cr.openjdk.java.net/~jlaskey/jdk9-jimage/jdk/>
http://cr.openjdk.java.net/~jlaskey/jdk9-jimage/langtools/ 
<http://cr.openjdk.java.net/~jlaskey/jdk9-jimage/langtools/>

There are some issues with regard to the hotspot changes, but I’m working with 
Coleen and John R. to resolve those.


Just to put a bit more context on this.

As Jim says in the subject line, this is refresh of the jimage implementation in JDK 9 (that went in with the initial push of JEP 220).

One of the discussion points at the time was making it a bit easier for tools using the jrt file system to locate classes and resources without knowing which module they are in. This is addressed in this update by introducing a top-level /packages directory in the jrt file system. More details in JDK-8066492 [1]. A number of tools already have early support for JDK 9 so they will need some adjustments once these changes get into JDK 9.

Another issue addressed in this refresh is the startup performance when first opening the file system. This is something that has been noticeable with javac and javadoc at least.

Jim can say more about the architectural changes but at a high level then access goes through a VM interface now whereas previously access from the application and extensions class loaders took different path. Another change is that the jimage file is optionally fully memory-mapped now whereas it was previously only the header. There is a XX option to control this and an open question is whether to do this by default on 32-bit and small devices. For now, there are still 3 jimages file as before but we should eventually be able to move to one once the module system goes in.

-Alan

[1] https://bugs.openjdk.java.net/browse/JDK-8066492

Reply via email to