2016-07-12 11 views
8

Rozumiem, że RyuJIT jest szybszym kompilatorem niż JIT. Ale czy jest to nowy standard dla platformy .NET 4.6 czy jest to Roslyn?Jaka jest różnica między RyuJIT i Roslyn?

A może Roslyn jest używany, gdy trzeba ujawnić API podczas kompilacji?

Jestem zdezorientowany między ich celami i ramami, w których się znajdują. Czy ktoś może wyjaśnić różnicę &, kiedy chcesz jeden nad drugim, proszę?

+1

Roslyn kompiluje tekst C#/VB do IL. JIT (i RyuJIT) kompiluje IL do kodu maszynowego w czasie wykonywania. –

+2

Projekt RyuJIT stworzył zastępstwo dla jittera x64, oryginalny, który został dostarczony w .NET 2.0 miał zbyt wiele błędów, których nie można naprawić. Brak korelacji z projektem Roslyn, że zostały wysłane w tym samym czasie, był wypadkiem. –

+0

@eliarbel thanks. Czy to oznacza, że ​​Roslyn może zastąpić csc.exe - kompilator Csharp? – myfunnyfella

Odpowiedz

10

Roslyn to kompilator, który pobiera kod źródłowy i generuje kod bajtowy IL. RyuJIT pobiera kod bajtowy w czasie wykonywania i generuje kod natywny. Możesz osadzić Roslyn w aplikacji, aby skompilować kod źródłowy w locie, ale RyuJIT jest ściśle związany z runtime i nie może być dostępny z tego co wiem.

9

Roslyn to kompilator, który kompiluje twój kod (C# lub VB) do IL.

RyuJIT to kompilator Just In Time, który kompiluje IL do natywnego kodu.

Oba są teraz otwarte.

Roslyn

RyuJIT, Tutorial

Roslyn API jest to, czego potrzebujesz, jeśli chcesz grać z drzewa składni, kompilacji i semantycznego modelu.

RyuJIT nie ma publicznego interfejsu API.

+2

Ten [przegląd] (https://github.com/dotnet/coreclr/blob/master/Documentation/botr/ryujit-overview.md) jest także doskonałym źródłem informacji na temat RyuJIT. –

2

Próbujesz porównywania jabłek z pomarańczami ...

RyuJIT (domyślnie 64 JIT dla .NET 4.6) kompiluje się do kodu MSIL procesora podczas wykonywania. Roslyn tworzy MSIL z twojego kodu (C#?).

Powiązane problemy