The startup test for JavaFX, XFramer.fx, shows high variability, making it hard to zero in on our "true" startup time.
What we want to measure is the time it takes to reach first paint. In Java this is done by exiting as soon as the first paint happens. The problem in FX, at least in part, is that we don't have access to the AWT/Swing paint() methods, and so can't "override paint()" to add the shutdown hook. The XFramer.fx behavior is less deterministic, and it is suspected that sometimes the paint happens, and sometimes it doesn't - thus the variability.
Adding an internal flag/property to exit once the first paint has taken place should make a big improvement.