アプリケーションの起動時間を大幅に短縮したいと考えています。
Java仮想マシンを実行しているプロセスのメモリ空間に存在するアプリケーションの状態全体を保存できれば、新しいJavaプロセスを作成し、そのメモリの内容を保存された状態に置き換えることもできるはずです。画像ファイルで。
これを行うと、アプリケーションを数秒速く起動でき、ファイルを読み取ってjvmの適切なメモリゾーンに配置できるのと同じくらい高速になるというのが私の理論です。
アプリケーションの起動時間を大幅に短縮したいと考えています。
Java仮想マシンを実行しているプロセスのメモリ空間に存在するアプリケーションの状態全体を保存できれば、新しいJavaプロセスを作成し、そのメモリの内容を保存された状態に置き換えることもできるはずです。画像ファイルで。
これを行うと、アプリケーションを数秒速く起動でき、ファイルを読み取ってjvmの適切なメモリゾーンに配置できるのと同じくらい高速になるというのが私の理論です。
シリアライゼーションを使用してアプリケーションの状態を書き込み (ただし、オブジェクト グラフのサイクルに注意してください)、起動時にデシリアライズできますが、これは JVM プロセスのイメージを作成することとまったく同じではありません。クラスをロードし、いくつかの基本的なインフラストラクチャをインスタンス化してアプリケーションをブートストラップする必要があり、メモリと JIT に関して同じ状態にはなりません。JVM は多くのことを抽象化するため、「適切なメモリ ゾーン」にアクセスできません。
それがアプリケーションの起動時間にプラスの影響を与えるかどうかは、状態が最初に読み込まれる場所と、ビルドにかかるコストに大きく依存します。