ナビゲーションをスキップ

JRockit JDK の紹介

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

BEA JRockit JVM について

BEA JRockit JVM は、現在市販されている他の JVM を引き離す、数多くの重要な機能を備えています。この節では、ユーザが理解しやすいように、特に重要な機能について概要を示します。BEA JRockit JVM は以下の要素で構成されています。

 


Java Development Kit (JDK)

BEA JRockit Java Development Kit (JDK) は Sun JDK と非常に似ていますが、BEA JRockit JVM に新しい JRE があり、Java クラス ライブラリの一部が変更されています (ただし、BEA JRockit JDK のクラス ライブラリの動作はすべて Sun JDK と同じです)。

 


Java Runtime Environment

BEA JRockit の Java 2 実行時環境には、Java 言語で記述されたアプリケーションの実行をサポートする BEA JRockit JVM、クラス ライブラリ、およびその他のファイルが含まれます。

 


JRockit Management Console

Management Console は BEA JRockit JVM に接続して、メモリ使用率やプロファイリング情報など、サーバの動作やリソースの可用性に関するリアルタイム情報を提供します。アプリケーションに関するリアルタイム プロファイル データを入手するための強力な手段となります。

Management Console を使用すると、プロダクション環境のアプリケーションに影響を与える、相互に関連した複雑な変数の集合を自在に制御できるため、商用 Java ソリューションをデプロイする場合には特に利点があります。管理者は、BEA JRockit JVM の動作特性と Java アプリケーションを監視し、リソースの可用性や動作特性に変化があったときに自動的に通知を受けることができます。管理者はこの情報に基づいて、パフォーマンスのボトルネックを特定し、操作パラメータや環境パラメータを変更して、パフォーマンスと可用性を最適化することができます。

Management Console の詳細については、「JRockit Management Console の使い方」を参照してください。

 


コードの生成と最適化

JRockit のコード ジェネレータは、Java アプリケーション実行中にバックグラウンドで動作し、コードを自動的に最適化してベストの状態で実行できるようにします。コード ジェネレータの動作は、図 2-1 に示すように 3 段階に分かれています。

図 2-1 Java アプリケーションのコード最適化の概要

Java アプリケーションのコード最適化の概要


 

  1. コード生成の第 1 段階では、Just In Time (JIT) コンパイルを実行します。JIT コンパイルでは、Java アプリケーションを起動して実行させることができますが、生成されるコードはプラットフォームに対して完全に最適化されてはいません。
  2. コンパイル時間はアプリケーション実行時間に含まれるため、すべてのメソッドに対して可能な限りの最適化を適用すると、アプリケーションのパフォーマンスに悪影響が生じます。そこで、第 1 段階では JIT コンパイルを実行するわけであり、起動時にすべてのメソッドを完全に最適化することはありません。

  3. 第 2 段階では、実行時にすべてのスレッドを監視し、実行までの所要時間が最も長いメソッドを見極めます。この監視は特殊なサンプル スレッドのバックグラウンドで行われるため、アプリケーションのパフォーマンスが損なわれることはありません。
  4. サンプル スレッドは、各スレッドの実行内容を特定し、実行履歴を記録します。この情報はすべてのメソッドで追跡されます。あるメソッドが頻繁に使用されている (つまり「ホット」である) ことがわかると、そのメソッドは最適化の対象としてマークされます。一般に、そのような最適化の機会はアプリケーションの実行の早い段階で発生し、実行が進むにつれて、その割合は小さくなります。

  5. 第 3 段階では、第 2 段階で検出された最も使用頻度が高い (ホットな) メソッドの最適化を行います。この最適化はバックグラウンドで実行され、実行中のアプリケーションのパフォーマンスを損なうことはありません。

 


メモリ管理 (ガベージ コレクション)

メモリ管理は効率的な「ガベージ コレクション」に依存しています。ガベージ コレクションとは、ヒープから不要になったオブジェクトを消去して、その領域を新しいオブジェクトのために解放するプロセスです。BEA JRockit では、2 つの優先順位 (メモリ スループット、またはコレクションによって生じた休止時間の長さ) のいずれかに基づいて動作する動的なガベージ コレクタを使用します。この動的なガベージ コレクタは、あらかじめ定義されたヒューリスティックに基づいて、アプリケーションごとに使用するガベージ コレクション アルゴリズムを実行時に決定します。

メモリを解放する方法として、動的なガベージ コレクションが最適でない場合もあります。そのような場合に備えて、BEA JRockit には「静的な」コレクタも数多く用意されています。静的なコレクタを使用するには、起動時に実際のコレクタを指定します (-Xgc:<collectorName>)。

ガベージ コレクタの選択と使用の詳細については、「BEA JRockit メモリ管理システムの使い方」を参照してください。

 

ナビゲーション バーをスキップ  ページの先頭 前 次