I need to try to improve startup time of a relatively large headless java application tweaking VM/launcher parameters (a separate effort is underway to achieve the same goal tweaking the actual code).
The VM of choice is standard OpenJDK Java-8.
openjdk version "1.8.0_102-internal"
OpenJDK Runtime Environment (build 1.8.0_102-internal-b14, profile compact3)
OpenJDK VM (build 25.102-b14, interpreted mode)
Host computer is an embedded ARM7 (32 bit) running Linux.
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Goal, as said, is to improve startup time; runtime performance is acceptable.
Can someone suggest tweaks to the VM itself to significantly improve lead time.
Note: I'm aware of possible benefits of "-client" option and I will experiment with it ASAP; are there possible drawbacks? Any other?
Clarification:
The "interesting number" is the time needed from target power-up to when application is ready to accept commands.
This is composed by three parts:
- System boot time: outside the scope of this question. The only impact is Java is started quite early, so some other background processes might be stealing Computing Power; maybe some priority scaling could help, at the expense of some other process.
- Java VM startup: this is the main focus of this question.
- Application Startup time: this should be computed in the optimization, but application optimization itself (e.g.: delayed loading of "unused" classes") is not part of this question. It should be kept in mind, however, because any solution shortening VM launch time, but lengthening Application startup time won't help much.