Pytanie Jaka jest różnica między RyuJIT i Roslyn?


Rozumiem, że RyuJIT jest szybszym kompilatorem niż JIT. Ale czy jest to nowy standard dla platformy .NET 4.6 czy jest to Roslyn?

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

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


11
2017-07-12 23:51


pochodzenie


Roslyn kompiluje tekst C # / VB do IL. JIT (i RyuJIT) kompiluje IL do kodu maszynowego w czasie wykonywania. - Eli Arbel
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. - Hans Passant
@eliarbel dzięki. Czy to oznacza, że ​​Roslyn może zastąpić csc.exe - kompilator Csharp? - myfunnyfella
csc.exe jest Roslyn zaczynając od VS 2015. Roslyn może być również używany jako API (pakiet Microsoft.CodeAnalysis NuGet). - Eli Arbel
@EliArbel Dzięki! - myfunnyfella


Odpowiedzi:


Roslyn jest kompilatorem, 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.


12
2017-07-13 00:35





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

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

Oba są teraz otwarte.

Roslyn

RyuJIT, Seminarium

Roslyn API jest tym, czego potrzebujesz, jeśli chcesz grać z drzewem składni, kompilacją i modelem semantycznym.

RyuJIT nie ma publicznego interfejsu API.


9
2017-07-13 11:20



To Przegląd jest również doskonałym źródłem informacji na temat RyuJIT. - Eli Arbel


Próbujesz porównać jabłka z pomarańczami ...

RyuJIT (domyślny JIT x64 dla .NET 4.6) kompiluje MSIL do kodu rodzimego procesora podczas pracy. Roslyn tworzy MSIL z twojego kodu (C #?).


3
2017-10-05 07:18



Nie, nie jest. Pytał konkretnie, czy są to niezgodne jabłka i pomarańcze, czy też jakie są różnice w formie / zakresie. - Jon Davis