インターネットでしばらく検索したところ、バイトコードをコンパイルして実行するかバイトコードを解釈するためにJITを使用する必要があるかどうかをJVMが判断する完全な答えは見つかりませんでした。要するにJITを使用するか、バイトコードを解釈するかをJVMが決定する方法
は、このオプションのうちいずれかのデフォルトがあり、私は
> javac xyz.java
> java xyz
となし、他のパラメータが何を実行します、JITまたはインタプリタ言えば、意味?
質問が広すぎるために保留されていますので、私はそれを簡潔にしておきます.JITや通訳の仕組みを理解したくない、どちらの方法を決定するかJITの解釈や使用。私は、この決定を下す際に重要なパラメータ(プログラムサイズ、実行環境など)を知りたいだけです。 (あなたはJavaソースのうち、静的な「ネイティブコード」のバイナリを作成する非常に特別な製品の話をしない限り、ウェル)事前に答えを
おかげ
最新のJVMのほとんどはJITをサポートしていますが、すべてのJVMがJITサポートを提供することは必須ではありません。ほとんどの場合(他の手法はありますが)、JITは、コードの一部(通常はメソッド)が特定の回数(JIT閾値)呼び出されたとJVMが判断したときに起動します。例えば、HotSpot VMは、JIT閾値が1,500(同じ方法の呼び出し)である「クライアント」と閾値が10,000である「サーバ」の2つのモードを有する。 [このプレゼンテーション](http://www.slideshare.net/ZeroTurnaround/vladimir-ivanovjvmjitcompilationoverview-24613146)に詳細が記載されています。 – manish
それは質問です。私がjava xyzと言うときはいつ、誰がコントロールの最初のインタプリタかJITを取るのですか?限界に達した後にJITが開始されたとUが言ったように、それは通訳が働くまで意味します。右? @manish –
これらの人々が好きな理由を理解できません:@aviadは質問を保留にしました。あなたが質問に答えることができないなら、少なくとも他の人にそれを話してもらいましょう。ディスカッションは常に良い結果をもたらします。 –