Interstage Application Serverにおいて、Javaアプリケーション起動直後の性能が良くないのはなぜですか?
- Javaアプリケーション起動直後の性能が良くないのはなぜですか?
- C言語やCOBOL などで作られたプログラムは、プログラムを実行する前に、コンパイラによって、プログラムが動作するプラットフォームに合わせて、実行形式(そのプラットフォームで動作する機械命令)を事前に作成します。アプリケーションを実行するときは、機械命令に変換された実行形式で最初から実行されますので、起動時から高速に実行されます。
一方、Javaは、アプリケーションを起動したあとに、プログラム(クラスファイル)を読み込み、実行が行われます。プログラムの実行は、インタプリタで1命令ずつ、命令の意味を解釈実行するか、コンパイラ(*1)によって機械命令に変換してから実行されます。このため次の理由から、Javaアプリケーション起動直後の性能は良くありません。
-
実行時にプログラムを読み込むため、プログラムのロードとチェックにオーバーヘッドが発生する
-
実行時にコンパイル処理を行うため、オーバーヘッドが発生する
-
アプリケーション開始直後は、機械命令がそろっていない
(*1)
C言語やCOBOLのコンパイラと区別して、アプリケーション実行時にコンパイルすることから、動的コンパイラと呼ばれます。関連FAQ:
FAQ11883 「Interstage Application Serverにおいて、運用開始前に「暖気運転」が必要なのはなぜですか?」 -
製品・サービス区分 | Interstage | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 技術サポート |