рджреБрдирд┐рдпрд╛ 64-рдмрд┐рдЯ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реА рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐, 32-рдмрд┐рдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣рдореЗрд╢рд╛ рддреЗрдЬ рдпрд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдХрдИ 32-рдмрд┐рдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо, рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ, 64-рдмрд┐рдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд╣реА рдПрдХ рдЙрджрд╛рд╣рд░рдг .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП 64-рдмрд┐рдЯ JIT рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдХрд░реЗ, рд▓реЗрдХрд┐рди рдЕрдлрд╕реЛрд╕, рдпрд╣ рдЙрддрдирд╛ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╣рдо рдареАрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдирдИ рдкреАрдврд╝реА x64 JIT рд╕рдВрдХрд▓рдХ рдХрд╛ рдкрд░рд┐рдЪрдп, рдЬреЛ 64-рдмрд┐рдЯ .NET рдХреЛрдб рдХреЛ 2 рдмрд╛рд░ рддреЗрдЬреА рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред
X64 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВ
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 32-рдмрд┐рдЯ x86 рдХрдВрдкреНрдпреВрдЯрд░ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЖрд╕рдкрд╛рд╕ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдорд╣рд╛рди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: 32-рдмрд┐рдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдкрддрд╛ рд╕реНрдерд╛рди 4 рдЬреАрдмреА рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдЙрдирдХреЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдВрдХреЗрдд рд╡рд╛рд▓реЗ 64-рдмрд┐рдЯ рдХрдВрдкреНрдпреВрдЯрд░ рд▓рдЧрднрдЧ рдЕрд╕реАрдорд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рд╡рд┐рдВрдбреЛрдЬ рдХрд╛ рдкрд╣рд▓рд╛ x64 рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рддреЛ рд░реИрдо рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдорд╣рдВрдЧреА рдереА, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ 64-рдмрд┐рдЯ рдорд╢реАрдиреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм x64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдмрди рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрдо рд╕реЗ рдХрдо 4 рдЬреАрдмреА рдХреА рд░реИрдо рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреБрдЫ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдиреЗ 64-рдмрд┐рдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 1 рдЬреАрдмреА рд░реИрдо рд╣реИред
.NET x64 JIT рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд▓рдВрдмреА-рд▓рдВрдмреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рджреМрд░рд╛рди рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ .NET x86 JIT рд╕реЗ рдЗрд╕рдХрд╛ рдЕрдВрддрд░ рд╣реИ, рдЬрд┐рд╕реЗ рдорд╢реАрди рдХреЛрдб рдореЗрдВ IL-code рдХреЗ рд╕рдмрд╕реЗ рддреЗрдЬ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рддреНрд╡рд░рд┐рдд рд▓реЙрдиреНрдЪ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдЕрдХреНрд╕рд░ рдЙрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди "рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдореЗрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬ рд╢реБрд░реБрдЖрдд рд╣реИред .NET рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ 64-рдмрд┐рдЯ JIT, рд╢рд╛рдпрдж рд╣реА рдХрднреА IL-code рдХреЗ рддреЗрдЬ рд╕рдВрдХрд▓рди рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрдИ рдЕрдиреНрдп рддрдХрдиреАрдХреЛрдВ рдЬреИрд╕реЗ NGen рдпрд╛ рдкреГрд╖реНрдарднреВрдорд┐ JIT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред
рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП RyuJIT!
RyuWHAT? .NET рдХреЛрдб рдЬрдирд░реЗрд╢рди рдЯреАрдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХрджрдо рдирдП x64 рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо RyuJIT рд╣реИред рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 2 рдЧреБрдирд╛ рддреЗрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рд▓реЙрдиреНрдЪ рд╕рдордп рд▓рдЧрднрдЧ 30% рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдЬреЗрдЖрдИрдЯреА рд╕рдВрдХрд▓рди рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдордп рдХреЗрд╡рд▓ рдЖрд╡реЗрджрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рддрдереНрдп рдХрд┐ рдЬреЗрдЖрдИрдЯреА 2 рдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдХреЛ рднреА рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП) )ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдпрд╛ JIT рдЕрднреА рднреА рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдорд╢реАрди рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЧреНрд░рд╛рдл рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди JIT64 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ RyuJIT рдХреИрд╕реЗ рддреЗрдЬ рд╣реИ:

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдиреЗ рдирдИ рдЬреЗрдЖрдИрдЯреА рдХреЗ рд╕рд╛рде рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рдХрд┐ рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг (RFC822 рдИ-рдореЗрд▓ RegEx) рд╡рд╕реНрддреБрддрдГ рдЧреНрд░рд╛рдл рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ JIT64 рдкрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рдХрд╛рдо рдХрд░рддреА рд╣реИред JIT64 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ 60 рд╕реЗрдХрдВрдб рдХрд╛ рд╕рдордп рд▓рдЧрд╛ рдФрд░ 1.4 GB рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред RyuJIT рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ 1.8 рд╕реЗрдХрдВрдб рдФрд░ 199 рдПрдордмреА рд▓рд┐рдпрд╛ред
рдкреЗрдВрдЯ.рдиреЗрдЯ рдЙрджрд╛рд╣рд░рдг рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдХрд▓рд╛ред рдкрд░реАрдХреНрд╖рдг рдорд╢реАрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдирд╛ 2.3 рд╕реЗ 1.8 рд╕реЗрдХрдВрдб рддрдХ рдХрдо рд╣реЛ рдЧрдпрд╛ рдерд╛ред рд╕рдВрдХрд▓рди рдХрд╛ рд╕рдордп 1510 ms рд╕реЗ 970 ms рддрдХ рдХрдо рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдиреНрдпреВрдирддрдо рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рд╣рдорд╛рд░реА рджреБрдирд┐рдпрд╛ рдХреЛ рдПрдХ рдмреЗрд╣рддрд░ рд╕реНрдерд╛рди рдмрдирд╛рддреА рд╣реИред
рдФрд░ рдорд┐рдард╛рдИ рдХреЗ рд▓рд┐рдП ...
RyuJIT рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдХрдо рд╕рдВрд╕рд╛рдзрди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорд╣рд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдЬрдм JIT64 рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рддреЛ рд╣рдордиреЗ рддрддреНрдХрд╛рд▓реАрди 32-рдмрд┐рдЯ JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдмрдЬрд╛рдп C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗ рдХрдорд╛рдВрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдЖрдзрд╛рд░ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдбрд╛рдпрдиреЗрдорд┐рдХ рдХрдВрдкреНрд▓рд╛рдпрдВрд╕ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдерд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ 64-рдмрд┐рдЯ рдХрдВрдкреНрдпреВрдЯрд░ рддрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ред рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, .NET CodeGen рдЯреАрдо рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрдирд╛рдП рд░рдЦрдирд╛ рдкрдбрд╝рд╛ред рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдХреАрдбрд╝реЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╕реЗ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреА рд╢реБрд░реВрдЖрдд рдореЗрдВ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИред рдФрд░ рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 8.0 рдХреЗ рд▓рд┐рдП рдПрдЖрд░рдПрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рдПрдордбреАрдЖрдИрдПрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдиреЗ рдЗрд╕ рдХрд╛рдо рдХреЛ рдФрд░ рднреА рдХрдард┐рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред
RyuJIT x86 JIT рдХреЛрдб рдмреЗрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЬрдмрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ 64-рдмрд┐рдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдкрдЧреНрд░реЗрдбреЗрдб рдХрдВрдкрд╛рдЗрд▓рд░ рдмрд╛рдж рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рднреА JIT рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХрд╛ рдЖрдзрд╛рд░ рдмрди рдЬрд╛рдПрдЧрд╛: x86, ARM, MDIL, рдФрд░ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рдФрд░ред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдЖрдзрд╛рд░ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ .NET рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдХреАрдбрд╝реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╕рдорд╛рди рд╣реЛрдВрдЧреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ рд╣рдо рдирдИ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдкреЗрд╢ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?
RyuJIT рдХрд╛ CTP рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЕрднреА рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред
рдЖрдк рдЕрдм
RyuJIT рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ 8.1 рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ 2012 R2 рдХреЗ 64-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ RyuJIT рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ NGen рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рд╕реНрдерд╛рдкрдирд╛ рд╕рд╛рдл рд╣реЛред рдФрд░ рдлрд┐рд░ рднреА, RyuJIT рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, VS рдореЗрдВ "рдПрдбрд┐рдЯ рдПрдВрдб рдХрдВрдЯрд┐рдиреНрдпреВ" рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реБрдП, рдпрд╣ x64 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, RyuJIT рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ "
COMPLUS_AltJit = * " рдЬреЛрдбрд╝реЗрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ "*" рдХреЗ рд╕рд╛рде рд░рдЬрд┐рд╕реНрдЯреНрд░реА "
HKLM \ SOFTWARE \ Microsoft \ .NETFramework \ AltJit " рдореЗрдВ рдХреБрдВрдЬреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпреЗ рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ 64 рдмрд┐рдЯ CLR рдХреЛ JIT64 рдХреЗ рдмрдЬрд╛рдп RyuJIT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдВ рдкреНрд░рддрд┐рд╡рд░реНрддреА рд╣реИрдВ - RyuJIT рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ (рдХрдВрдкрд╛рдЗрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдлрд╛рдЗрд▓ рд░рдЦрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛)ред
рд╕реНрд░реЛрдд:
.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдмреНрд▓реЙрдЧ.NET рдХреЛрдб рдЬрдирд░реЗрд╢рди рдЯреАрдо рдмреНрд▓реЙрдЧ