Репост из: DotNetRu
Мы запускаем новый курс про JIT-компиляцию в .NET ⚙️
https://www.youtube.com/watch?v=vFqNTxBSogQ&list=PLbxr_aGL4q3RaW3_PZM8DhBDDQWjIQ7ep
Вы задумывались, что реально происходит после того, как вы написали C#-код?
• Что происходит при new, throw или вызове метода?
• Как IL превращается в машинный код?
• Почему JIT иногда оптимизирует агрессивно, а иногда — нет?
В курсе разберём, как JIT превращает код в машинные инструкции и какие решения принимает, а через это посмотрим и на рантайм: аллокации, GC, вызовы, исключения.
В рамках курса разберёмся с:
• JIT pipeline
• JIT dump’ы и ассемблер
• inlining, devirtualization, PGO
• разбор оптимизаций и их причин
• работу кода от ассемблера до рантайма
• Java и Go, чтобы понимать различия компиляторов.
• и многое другое!
Лекции будет вести Дмитрий Егоров – человек, доказавший глубокое знание темы, многочисленными докладами в нашем сообществе.
Курс для тех, кому интересно, как C# код реально исполняется внутри .NET runtime.
https://www.youtube.com/watch?v=vFqNTxBSogQ&list=PLbxr_aGL4q3RaW3_PZM8DhBDDQWjIQ7ep
Вы задумывались, что реально происходит после того, как вы написали C#-код?
• Что происходит при new, throw или вызове метода?
• Как IL превращается в машинный код?
• Почему JIT иногда оптимизирует агрессивно, а иногда — нет?
В курсе разберём, как JIT превращает код в машинные инструкции и какие решения принимает, а через это посмотрим и на рантайм: аллокации, GC, вызовы, исключения.
В рамках курса разберёмся с:
• JIT pipeline
• JIT dump’ы и ассемблер
• inlining, devirtualization, PGO
• разбор оптимизаций и их причин
• работу кода от ассемблера до рантайма
• Java и Go, чтобы понимать различия компиляторов.
• и многое другое!
Лекции будет вести Дмитрий Егоров – человек, доказавший глубокое знание темы, многочисленными докладами в нашем сообществе.
Курс для тех, кому интересно, как C# код реально исполняется внутри .NET runtime.