3

我正在创建我的第一个 JavaFX 应用程序,这是一个陷入困境的版本:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application
{

    final private StackPane mainpane    = new StackPane();

    @Override
    public void start(Stage primaryStage)
    {
        // main panel
        this.mainpane.setMinWidth(1024);
        this.mainpane.setMinHeight(768);

        // show
        primaryStage.setScene(new Scene(this.mainpane));
        primaryStage.setResizable(false);
        primaryStage.show();
    }

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

}

我尝试在三台计算机上启动上述程序,启动时间结果令人惊讶。所有机器都运行最新的 Java 版本。我使用e(fx)clipse来构建我的应用程序。

我的开发机器是:

Intel Core i5-3330 (3GHz)
8 GB RAM
Windows 7

在 Eclipse 中,应用程序在大约1 秒内启动。这可以。在同一台机器上启动的内置 JARjava -jar大约需要3-4 秒才能启动。这太慢了。

另一台机器是:

Intel Pentium Dual-Core E5400 (2.7GHz)
4 GB RAM
Windows Vista

在这台机器上启动一个 JAR 需要1 秒钟……等等,什么?为什么?

最后:

2 x 2.26 GHz Quad-Core Intel Xeon
32 GB 1066 MHz DDR3 ECC
OS X 10.8.2

应用启动时间:2秒

o_o

现在,我对优化 Java 应用程序知之甚少,我不知道如何进行分析基准测试,但这似乎很基础,不应该发生这种情况!

我能做些什么来确保在所有这些平台上实现快速、统一的启动时间?我已经在我的机器上启动了其他 JavaFX 应用程序,它们加载速度非常快(Ensemble在我的开发机器上大约需要 2 秒)。

我将不胜感激与 JavaFX 优化有关的任何其他提示。

4

1 回答 1

1

在捆绑应用程序时,我们所做的只是调用 JavaFX ant 任务,所以我不确定该建议什么:-( 唯一的区别是,打包应用程序时,查找 javafxrt.jar 的引导过程必须是完成我认为不需要那么长时间。

我猜你在 win32 系统上运行相同的 Java。顺便说一句,您在我们论坛上的消息显示为已审核,但我认为我在审核时做错了,因为它没有出现在群组中 - 对此感到抱歉:-(

谷歌群组有时表现得很奇怪。

于 2012-12-15T10:31:11.313 回答