• TopKursy - РЕДКИЕ Удаленные КУРСЫ!

    Эксклюзивные материалы, недоступные на других источниках.

    Откройте доступ к уникальным знаниям прямо сейчас!

    Подробнее
bart

bart

PRO
Сообщения
52.481
Реакции
28.843

Глубокий курс C# для разработчиков: компиляция и CLR​

Платформа: Dometrain

1786667189875.png


«Глубокий курс C# для разработчиков: компиляция и CLR» — продвинутое обучение для программистов, которые хотят выйти за рамки обычного использования языка и понять, что происходит с C#-кодом на уровне компилятора, CLR и управления памятью.

Курс поможет разобраться, как исходный код превращается в исполняемое приложение, какие скрытые аллокации создают привычные языковые конструкции, как устроены значимые и ссылочные типы, каким образом компилятор преобразует лямбды, итераторы и LINQ и какие подходы позволяют создавать более быстрые и предсказуемые .NET-приложения.

Особое внимание уделено производительности. Вы научитесь находить неочевидные копирования и выделения памяти, анализировать поведение высокоуровневых конструкций и выбирать более эффективные решения для задач, где важны скорость выполнения и контроль над ресурсами.

Компиляция и таргетинг проектов:
  • Этапы компиляции C#-кода
  • Принципы работы компилятора Roslyn
  • Мульти-таргетинг .NET-проектов
  • Использование Target Framework Monikers
  • Работа с различными целевыми версиями .NET
  • Интеграция PolySharp
  • Применение новых возможностей C# в проектах на более старых версиях .NET
Типы и управление памятью:
  • Различия между ссылочными и значимыми типами
  • Размещение объектов и данных в памяти
  • Механизмы передачи значений и ссылок
  • Влияние модели передачи данных на производительность
  • Поиск скрытых аллокаций
  • Выявление неочевидных копирований
  • Анализ стоимости различных операций с типами
Структуры, записи и инициализация объектов:
  • Работа конструкторов
  • Порядок инициализации объектов
  • Внутреннее устройство struct
  • Особенности record и record struct
  • Поведение структур под нагрузкой
  • Механизм boxing
  • Способы предотвращения лишнего boxing
  • Особенности readonly-полей
  • Сравнение значимых типов по значению
  • Правильное применение ValueTuple
  • Поиск скрытых аллокаций при использовании кортежей и структур
Делегаты, лямбда-выражения и замыкания:
  • Внутреннее устройство делегатов
  • Преобразование лямбда-выражений компилятором
  • Создание вспомогательных классов для замыканий
  • Причины появления дополнительных аллокаций
  • Влияние замыканий на производительность
  • Оптимизации для снижения нагрузки на сборщик мусора
Итераторы и машины состояний:
  • Принцип работы операторов yield
  • Генерация машин состояний компилятором
  • Внутреннее устройство итераторов
  • Стоимость отложенного выполнения
  • Проблемы повторного перечисления коллекций
  • Поиск дополнительных затрат при работе с последовательностями
LINQ и скрытые затраты:
  • Внутренние механизмы стандартного LINQ
  • Аллокации при использовании цепочек LINQ
  • Стоимость перечисления коллекций
  • Проблемы многократного выполнения запросов
  • Анализ производительности LINQ-выражений
  • Выбор между удобством высокоуровневого API и эффективностью
Высокопроизводительная обработка данных:
  • Современные подходы к оптимизации LINQ
  • Специализация по типам
  • Устранение лишней виртуализации
  • Работа со Span
  • Использование низкоуровневых абстракций .NET
  • Объединение итераторов
  • Создание эффективных конвейеров обработки данных
  • Сокращение количества промежуточных объектов
Векторизация и быстрые пути выполнения:
  • Применение векторизации
  • Использование оптимизированных путей выполнения
  • Повышение производительности вычислений
  • Оптимизация обработки больших объемов данных
  • Анализ участков кода, чувствительных к производительности
Чему вы научитесь:
  • Понимать полный путь C#-кода от исходного текста до выполнения в CLR
  • Анализировать влияние языковых конструкций на память и производительность
  • Находить скрытые аллокации и копирования
  • Понимать внутреннее устройство struct, record, ValueTuple, делегатов и замыканий
  • Разбираться в механизмах boxing и предотвращать лишние преобразования
  • Анализировать сгенерированные компилятором машины состояний
  • Выявлять проблемы производительности в LINQ
  • Использовать Span и другие производительные абстракции
  • Создавать более быстрые и предсказуемые приложения
  • Принимать архитектурные решения с учетом реальной стоимости операций
Кому подойдет курс:
  • C#-разработчикам среднего и продвинутого уровня
  • .NET-разработчикам, которые хотят глубже понимать CLR
  • Backend-разработчикам, работающим с производительными сервисами
  • Специалистам, занимающимся оптимизацией приложений
  • Разработчикам, которым важно понимать устройство памяти и сборку мусора
  • Тем, кто хочет писать производительный C# без случайных аллокаций и лишних копирований
  • Инженерам, желающим лучше понимать работу Roslyn и сгенерированного компилятором кода
Результат обучения:
  • Вы будете понимать, как C#-код компилируется и выполняется внутри CLR
  • Сможете анализировать внутреннее устройство сложных языковых конструкций
  • Научитесь выявлять источники лишних аллокаций и нагрузки на сборщик мусора
  • Сможете увереннее оптимизировать LINQ и работу с коллекциями
  • Освоите современные подходы к высокопроизводительной обработке данных
  • Научитесь использовать знания о компиляторе и памяти при проектировании приложений
  • Сможете создавать более быстрый, надежный и предсказуемый .NET-код
Язык: Английский



Продажник:

Скачать:
Скрытое содержимое могут видеть только пользователь группы: PRO

Качать без ограничений Купить доступ к 1 теме
Скрытое содержимое для пользователей: Ferr
 
Сверху Снизу