我正在创建我的第一个 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 优化有关的任何其他提示。