Plugin may start one VM and then later find out that it is not appropriate and start another VM.
The problem is that it does a lot of work before relaunch and this work then repeated in new VM.
This is especially noticeable if javafx applet is requesting
<property name="jnlp.packEnabled" value="true"/>
<property name="jnlp.versionEnabled" value="true"/>
in the JNLP file but does not specify
<param name="java_arguments" value="-Djnlp.packEnabled=true -Djnlp.versionEnabled=true">
in the applet tag.
See attached logs for first and second VM instances.
First launch too 4 second in my experiment.
Second VM seems to be done with startup in about 3s but there is some time in between of the launches when there were no records in the log. Perhaps it reused some of work done during first but not all.
Note that in this experiment i've used JRE with latest optimizations in the deployment cache
(not yet in the promoted builds) and for non optimized JRE these numbers will be bigger.