Hi!

I’ve just test with this very small JavaFX Application:

public class TstFx extends Application
{
    @Override
    public void start(Stage primaryStage) throws Exception
    {
        Label root = new Label("test");
        Scene scene = new Scene(root, 800, 600);
        primaryStage.setOnShown(evt -> System.exit(1));

        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}

As you can see, the program forcibly exits once the stage is shown. So, using 
„time“ I can simply measure the time required until the stage should be visible 
on screen.

Starting this with an incredible huge classpath (the one we have to use in 
production) I get this times:
real 0m1.885s
user 0m3.372s
sys 0m0.433s

Using a really small classpath I can come down to:
real 0m1.639s
user 0m2.208s
sys 0m0.297s


MacBook late 2016.

The „user" difference seems to be just because of the classpath scanning. No 
static initialization happening, because this TstFx does not reference any 
other class.

Best regards,
Mario


Am 04.06.2018 um 18:22 schrieb Scott Palmer 
<swpal...@gmail.com<mailto:swpal...@gmail.com>>:

Nobody is arguing against splash screens.  I’m simply suggesting that the JVM 
startup is not slow enough that we need special handling of this in native code.

If Java can get a window displayed in under half a second there is no need for 
the added complexity to support a native splash screen in the launcher.

The idea that cinit code *can* be slow is not really the issue here unless it 
isn’t possible to get a window displayed quickly even when there is no 
significant initialization other than to get that window= shown.  Don’t put 
heavy initialization in the main class when you want a splash screen.  Use a 
pre-main class that shows the splash screen and calls the “real” main class.

It makes sense to understand if we have this problem before making a complex 
solution.

Scott


On Jun 4, 2018, at 10:44 AM, Pedro Duque Vieira 
<pedro.duquevie...@gmail.com<mailto:pedro.duquevie...@gmail.com>> wrote:

Hi,

I agree with Johan and others, a splash screen is valuable and needed.

Microsoft applications that run on Windows itself (think Word, Excel, etc),
they have a splash screen, Intelllij has a splash screen (it's swing based
AFAIK), etc.. If a Microsoft application running on its own operating
system needs a splash screen then chances are pretty high that there will
be Java apps that'll need a splash screen.

Cheers,


--
Pedro Duque Vieira


Reply via email to