27

RyuJIT は JIT よりも高速なコンパイラであることがわかりました。しかし、これは .NET 4.6 の新しい標準なのか、それとも Roslyn なのか?

それとも、コンパイル プロセス中に API を公開する必要があるときに Roslyn が使用されるのでしょうか。

それらの目的と、それらが見つかるフレームワークとの間で混乱しています。誰かが違いを説明できますか?

4

3 に答える 3

37

Roslynは、コード (C# または VB) を IL にコンパイルするコンパイラです。

RyuJIT は、IL をネイティブ コードにコンパイルするJust In Timeコンパイラです。

どちらもオープンソースになりました。

ロズリン

RyuJITチュートリアル

Roslyn API は、構文ツリー、コンパイル、セマンティック モデルを操作する場合に必要なものです。

RyuJIT には公開 API がありません。

于 2016-07-13T11:20:27.777 に答える
21

Roslyn は、ソース コードを取得して IL バイトコードを生成するコンパイラです。RyuJIT は、実行時に上記のバイトコードを受け取り、ネイティブ コードを生成します。Roslyn をアプリに埋め込んでその場でソース コードをコンパイルすることはできますが、RyuJIT は厳密にランタイム用であり、私の知る限りアクセスできません。

于 2016-07-13T00:35:11.577 に答える
5

あなたはリンゴとオレンジを比較しようとしています...

RyuJIT (.NET 4.6 の既定の x64 JIT) は、実行時に MSIL をネイティブ プロセッサ コードにコンパイルします。Roslyn は、(C#?) コードから MSIL を作成します。

于 2016-10-05T07:18:50.193 に答える