当我运行JavaFX程序时,窗口的第一次出现会花费太多时间–大约700毫秒。这是一个明显的延迟。
JavaFX可以加载得更快吗?
我有
我有一个由Maven原型org.openjfx:javafx-archetype-simple:0.0.3
创建的简单HelloWorld项目。我只在PSVM中添加了一个附加类,该类调用扩展Application
类的类的PSVM:
public class MainLauncher {
public static void main(String... args) {
System.out.println("MainLauncher...");
App.main(args);
}
}
public class App extends Application {
@Override
public void start(Stage stage) {...}
public static void main(String[] args) {
System.out.println("App...");
Application.launch();
}
}
MainLauncher
是创建maven-shade-plugin
的uber-JAR的必要条件。
我已经使用屏幕记录(60 FPS)来检查应用程序启动需要多少时间。
当我运行java -jar app.jar
或java -p ${JARS_AND_FOLDER_WITH_CLASSES} -m com.company/com.company.MainLauncher
时,换句话说,当我运行MainLauncher
类时,我得到:
当我运行App
类时,其行为有点不同,但是总时间是相同的。在这种情况下,稍后我会在控制台中看到日志“ App...
”:
*窗口绘画需要2-3帧(对于60 FPS): 1. Title bar + borders 2. Background 3. Content
答案 0 :(得分:0)
使用最新版本的Java可能会加快速度。 关键是应用程序类数据共享。 Application class data sharing 这可以通过java命令的命令行参数激活。 基本上,它将所有初始化数据存储在某个位置以及何时 二次启动应用程序的整个初始化过程 可以跳过。