2013-05-29 16 views
10

Java SE 7の新機能である階層化されたコンパイルを深く理解するのを手伝ってください。Java 7で階層化されたコンパイルは何ですか?

ありがとうございます。 Java SEの7で導入された

+0

ようこそStackOverflow!この質問は、あまりにも漠然として適切な答えを引き付けることができません。階層化されたコンパイルについて理解していないことを理解し、そのトピックに関する1つ以上の具体的な質問をすることを検討してください。 – seanhodges

答えて

19

読むhere

階層型コンパイル

ティアードコンパイルは、サーバーVMにクライアントの起動 速度をもたらします。通常、サーバーVMは、 コンパイラに供給されるメソッドに関するプロファイリング情報を に収集するためにインタープリタを使用します。階層化スキームでは、インタープリタに加えて、 クライアントコンパイラを使用して、 自身のプロファイリング情報を収集するコンパイル済みバージョンのメソッドを生成します。コンパイルされた コードはインタープリタよりもかなり高速であるため、プログラム はプロファイリング段階でより高いパフォーマンスで実行されます。多くの ケースでは、サーバーのコンパイラによって生成される最終コードが の初期化段階ですでに利用可能であるため、クライアントVMよりもさらに高速な起動が達成される可能性があります( )。より速いプロファイリング フェーズはプロファイリングのより長い期間を可能にするので、層化されたスキームは通常のサーバーVMよりも良いピーク パフォーマンスを達成することができ、 の最適化が得られる可能性があります。

+0

ありがとう。私がグリーンホーンであることを理解して、私に次のことを教えてください。 1. 'クライアント' JITコンパイラと 'server' JITコンパイラはサーバ自体にありますか?なぜ彼らはクライアントとサーバーと呼ばれていますか?私は困惑している。助けて。 –

+1

ここで、「クライアント」と「サーバー」は、それぞれ異なるホットスポットvmを指します。いくつかの詳細はこちらhttp://stackoverflow.com/questions/198577/real-differences-between-java-server-and-java-client – Scorpion

関連する問題