United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6894248 CDS list should include everything needed for plugin that runs in the browser process
JDK-6894248 : CDS list should include everything needed for plugin that runs in the browser process

Details
Type:
Enhancement
Submit Date:
2009-10-22
Status:
Closed
Updated Date:
2011-11-30
Project Name:
JDK
Resolved Date:
2009-11-20
Component:
hotspot
OS:
generic
Sub-Component:
runtime
CPU:
generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
6
Fixed Versions:
6u18 (b05)

Related Reports
Backport:
Relates:

Sub Tasks

Description
I have noticed that firefox process opens rt.jar and reads its directory and few blocks from there (using procmon).
It looks like about 20-30 classes from rt.jar are loaded. These must be included into classes.jsa, 
so browser VM will not open rt.jar at all.

                                    

Comments
EVALUATION

Find out which classes are missing and add them to classes.jsa.
                                     
2009-10-22
EVALUATION

50 classes are missing (same set for firefox and IE). See list below.

However, adding this classes to classes.jsa does not avoid reading rt.jar directory. 
Directory is read when plugin classes from sun/* package are loaded. 

There are 2 different way to resolve this:
  1) add all packages in the sun package from rt.jar to meta-index
     (meaning 25 more entries)
  2) put deployment jars in front of bootclasspath for browser VM

Approach 1 seems to be better as it will help to avoid some lookups in other cases too
but i am not sure how much complexity it will add to meta-index check in runtime.
I have quickly prototyped approach 1 and it works, we are not reading rt.jar anymore.

I do not see any significant gain for warm start tests. This is somewhat expected as everything in the disk cache.
For real world scenarios we will read less in the process that blocks browser execution and this is important as it affects
browser responsiveness. We will also consume less memory in browser process.
So, this will be positive change.


======
java/lang/StringValue
java/lang/AssertionStatusDirectives
java/lang/ProcessEnvironment
java/lang/ProcessEnvironment$NameComparator
java/lang/ProcessEnvironment$EntryComparator
java/lang/ProcessEnvironment$CheckedEntrySet
java/lang/ProcessEnvironment$CheckedEntrySet$1
java/lang/ProcessEnvironment$CheckedEntry
java/util/TreeMap$Entry
java/nio/DirectIntBufferU
sun/nio/ch/FileLockImpl
java/nio/channels/FileLock
sun/nio/ch/FileChannelImpl$SharedFileLockTable
sun/nio/ch/FileChannelImpl$FileLockTable
sun/nio/ch/FileKey
sun/nio/ch/FileChannelImpl$FileLockReference
sun/nio/ch/FileChannelImpl$1
sun/nio/ch/FileChannelImpl$FileLockTable$Releaser
sun/nio/cs/ISO_8859_1
sun/nio/cs/ISO_8859_1$Encoder
sun/nio/cs/ISO_8859_1$Decoder
sun/net/util/URLUtil
java/net/PasswordAuthentication
java/lang/ProcessBuilder
java/lang/ProcessImpl
java/lang/Process
java/lang/ProcessImpl$1
java/nio/FloatBuffer
java/nio/DoubleBuffer
sun/rmi/transport/proxy/RMIMasterSocketFactory
java/rmi/server/RMISocketFactory
java/rmi/server/RMIClientSocketFactory
java/rmi/server/RMIServerSocketFactory
java/rmi/server/LogStream
sun/rmi/runtime/Log
sun/rmi/runtime/Log$LoggerLogFactory
sun/rmi/runtime/Log$LogFactory
java/lang/ApplicationShutdownHooks$1
sun/rmi/runtime/Log$LoggerLog
sun/rmi/runtime/Log$LoggerLog$1
sun/rmi/runtime/Log$InternalStreamHandler
java/util/logging/StreamHandler
java/util/logging/SimpleFormatter
java/util/logging/Formatter
java/util/logging/ErrorManager
sun/security/action/GetLongAction
sun/rmi/transport/proxy/RMIDirectSocketFactory
sun/rmi/transport/proxy/RMIHttpToPortSocketFactory
sun/rmi/transport/proxy/RMIHttpToCGISocketFactory
                                     
2009-10-24
EVALUATION

Adding deploy jars in front of bootclasspath does not really work as it will disable shared archive.

Modified meta index build script to add all second level packages for sun package.
This will slightly increase cost of class lookup time but not too much - 4ms per 10000 classes on my system.
We can (and should) improve meta index efficiency and scalability in future releases though.
                                     
2009-11-09



Hardware and Software, Engineered to Work Together