6

使用したい JIT のタイプを構成する方法を理解しようとしています。

たとえば、JIT には 3 つのタイプ (Pre、Econo、Normal) があることを認識しています。しかし、次の興味深い質問があります。

  1. 展開サーバーで .NET が実行される既定の JIT は何ですか?

  2. デフォルトが通常の場合、プレまたはエコノのいずれかを使用するように設定を変更する柔軟性はありますか。もしそうなら、私はこれをどこで変更できますか?

この設定が machine.config か何かにあるかどうかわかりませんか?

4

2 に答える 2

9

「エコノジット」なんて初めて聞きました。Google のリンクが表示されますが、それらはすべて .NET 1.x に関する古い記事を指しています。「エコノ」の部分は、生成されたマシン コードをあまり最適化せず、IL 検証をスキップすることで達成されているようです。

このオプションは、.NET 2.0 以降は存在しません。ジッターのタイプは 1 つだけです。IL は常に検証されますが、最適化はオフにすることができます。プログラムのデバッグ ビルドと同様に、[Debuggable] 属性がそれを制御します。ジッターにはさまざまな種類があり、Microsoft が提供するものは x86、x64、または ARM プロセッサをターゲットにすることができます。しかし、これは論理的な違いです。異なるプロセッサには異なるマシン コードが必要です。ジッタの選択は自動です。また、最適化をオフにすることはほとんど意味がありません。

「pre jit」はまだ存在します。アセンブリを ngen.exe でプリコンパイルします。実行時にコードを生成するものとまったく同じジッターを使用します。これにより、プログラムのウォーム スタート時間が改善されます。生成されたコードはそれほど効率的ではなく、コールド スタートが遅くなるため、常に最適なソリューションとは限りません。ngen.exe を使用するには、ユーザーのマシンでインストール時に ngen.exe を実行するインストーラーを作成する必要があります。

于 2012-07-09T13:54:06.510 に答える
0

JIT コンパイラのコンパイラ オプションをこのように変更するということですか。

コンパイル時間よりもパフォーマンスを優先するように .NET JIT コンパイラを変更する方法はありますか?

それとも、.net に同梱されているものとはまったく異なるコンパイラを使用するということですか? 私はこれが可能であることを知りません。たとえば、.net の横に mono がインストールされている場合は、mono で明示的に起動する必要があります。これは、実行中の .net アセンブリが決定できるものではありません。

于 2012-07-09T11:47:03.750 に答える