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);
    }

}

上記のプログラムを3台のコンピューターで起動してみましたが、起動時間の結果は驚くべきものです。すべてのマシンは最新のJavaバージョンを実行しています。アプリの作成にはe(fx)clipseを使用しています。

私の開発マシンは次のとおりです。

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

Eclipseでは、アプリケーションは約1秒で起動します。これで結構です。java -jar同じマシンで起動されたビルドされた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を実行していると思います。ちなみに、私たちのフォーラムへのメッセージはモデレートされているように見えましたが、グループに表示されないため、モデレートを行うときに何か間違ったことをしたと思います-申し訳ありません:-(

Googleグループは時々非常に奇妙に振る舞います。

于 2012-12-15T10:31:11.313 に答える