2012-06-15 9 views
7

Javaの起動時間について議論する人がいることがあります。これは重要なパフォーマンス面であるようです。しかし、それは本当に何ですか?Java仮想マシンの起動時間は何になりますか?

  • これは何を構成しますか?
    1. 動的クラスの読み込みによるクラス読み込み時間ですか?
    2. コンパイル専用JVMのコンパイルオーバーヘッドは初めてですか?
    3. Javaプログラムの実行の開始時に「遅さ」を引き起こす何か他のものはありますか?

次に、2つ目の質問は、Javaプログラムの起動時間を測定する方法を

  • のですか?どの時点から起動時間と呼ばれる持続時間はどの時点までですか?

私の質問が正しい方法で求められているかどうかわかりません。そうでない場合は、私に知らせてください。ありがとう!

+0

私はいつもこの言葉がt非公式に、私は誰かがそれの正式な定義を固定しているかどうかを知ることは非常に興味があります。 – templatetypedef

答えて

1

起動時間が正式に定義されていません。実際、実際のITで使用されるほとんどの用語は、正式には定義されていません。 (または正式な定義は無視されます)。

大まかに言えば、アプリケーションが起動されてから何か役に立つ準備が整うまでの時間です。起動時にはアプリケーションに依存しますが、静的なクラスのロード、静的なクラスの初期化、いくつかのクラスのJITコンパイルが含まれます。他に、UIの起動、データベースへの接続、アプリケーション固有のデータ構造の事前ロード、アプリケーションの「配線」などがあります。

"起動時間"を正式に定義しようとすると、いずれの定義もアプリケーションタイプの重要なサブセットに対してが動作しなくなる可能性があります。そして、あなたがそれを定義することができたとしても、起動(またはウォームアップ)タスクのいくつかは、アプリケーションが "準備完了"として自分自身を宣言した後にバックグラウンドで起こり続けるという複雑な問題があります。

(これは、Java固有の問題ではありませんノートパソコンの「起動」を検討し;。。つまり、何に電源を投入し、あなたのデスクトップを完全に使用可能であることの間で起こる)

スタートアップを測定する方法Javaプログラムの時間?どの時点から起動時間と呼ばれる持続時間はどの時点までですか?

それらの両方は、あなたが話して、そして何、あなたのアプリケーションの起動相として検討する必要されているアプリケーションの種類に応じて、決定するのはあなた次第です。

1

Stephen Cが述べたように、「起動時間」の一般的な正式な定義はありません。

このコンセプトを直感的に理解するには、Oracle's websに関する説明があります。

基本的には、非公式の定義です。 "アプリケーションの起動時間は、アプリケーションが起動して実行され、実行する準備が整うまでの時間です。「JVMとアプリケーション自体の両方が起動時間に影響を与えることができる。

また、起動時間を短縮するいくつかのアイデア(/ -Xmx-Xmsはヒープサイズを調整する)を提供する。いずれか大きすぎますか小さすぎるヒープサイズは、起動時間を延長する。

さらに、「Diagnosing a Slow JVM Startupは」スロースタート・アップの理由を見つけるために、いくつかの手がかりを示しています。

注上記は、すべてのJRockit JVMのコンテキストでありますしかし、アイデアはより一般的です。

関連する問題