2016-07-12 31 views
8

私はRyuJITがJITよりも速いコンパイラだと理解します。しかし、それは.NET 4.6の新しい標準ですか、それともRoslynですか?RyuJITとRoslynの違いは何ですか?

また、コンパイルプロセス中にAPIを公開する必要がある場合は、Roslynが使用されていますか?

私はその目的と彼らが見つけられるフレームワークとを混同しています。誰かが相違点を説明できるのですか?&もう一度やりたいですか?

+1

RoslynはC#/ VBテキストをILにコンパイルします。 JIT(およびRyuJIT)は、ILを実行時にマシンコードにコンパイルします。 –

+2

RyuJITプロジェクトはx64ジッタの代替品を作成しましたが、.NET 2.0に同梱されていたオリジナルのものは修正できなかったバグが多すぎます。同時に出荷されたRoslynプロジェクトとは、事故とはまったく相関がありませんでした。 –

+0

@eliarbelありがとうございます。それは、Roslynがcsc.exeの代わりになることを意味するのですか?Csharpコンパイラ? – myfunnyfella

答えて

10

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

9

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

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

どちらも現在オープンソースです。

Roslyn

RyuJITTutorial

ロザリンAPIを使用すると、構文木、コンパイルとセマンティックモデルをプレイしたい場合は何が必要です。

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

+2

この[概要](https://github.com/dotnet/coreclr/blob/master/Documentation/botr/ryujit-overview.md)は、RyuJITの優れたリソースです。 –

2

あなたは

RyuJIT(.NET 4.6のデフォルトのx64 JIT)...オレンジにリンゴを比較しようとしているが、実行時に、ネイティブプロセッサのコードにMSILをコンパイルします。 Roslynはあなたの(C#?)コードからMSILを作成します。

関連する問題