This content has been marked as final. Show 1 reply
Note that getting the right lists require at least three runs of the application:
Step 1: Generate the initial compilation list
Step 2: Expand compilation list using code-coverage (if needed)
java -XX:+RTSJBuildCompilationList <app> <args>
Step 3: Based on the compilation list generate the list of classes that need pre-loading & initializing
java -XX:+RTSJBuildCompilationList -Drtsj.precompile=nhrt.precompile <app> <newargs>
Step 4: Use both sets of lists to run the application
java -XX:+RTSJBuildClassInitializationList -Drtsj.precompile=nhrt.precompile <app> <args>
You might need to manually adjust the lists as well. Use -XX:+PrintCompilation to show which methods are getting compiled, and watch for compilations that occur after you expect.
java -Drtsj.precompile=nhrt.precompile -Drtsj.preinit=itc.preinit <app> <args>
That said, there are some problems with ITC in 2.1 that can cause some things not to be pre-compiled. In addition sometimes the compilation activity is actually doing patching that couldn't be done at pre-init time.