bart
PRO
- Сообщения
- 52.486
- Реакции
- 28.843
Глубокий курс C# для разработчиков: компиляция и CLR
Платформа: Dometrain«Глубокий курс 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-выражений
- Выбор между удобством высокоуровневого API и эффективностью
- Современные подходы к оптимизации LINQ
- Специализация по типам
- Устранение лишней виртуализации
- Работа со Span
- Использование низкоуровневых абстракций .NET
- Объединение итераторов
- Создание эффективных конвейеров обработки данных
- Сокращение количества промежуточных объектов
- Применение векторизации
- Использование оптимизированных путей выполнения
- Повышение производительности вычислений
- Оптимизация обработки больших объемов данных
- Анализ участков кода, чувствительных к производительности
- Понимать полный путь C#-кода от исходного текста до выполнения в CLR
- Анализировать влияние языковых конструкций на память и производительность
- Находить скрытые аллокации и копирования
- Понимать внутреннее устройство struct, record, ValueTuple, делегатов и замыканий
- Разбираться в механизмах boxing и предотвращать лишние преобразования
- Анализировать сгенерированные компилятором машины состояний
- Выявлять проблемы производительности в LINQ
- Использовать Span и другие производительные абстракции
- Создавать более быстрые и предсказуемые приложения
- Принимать архитектурные решения с учетом реальной стоимости операций
- C#-разработчикам среднего и продвинутого уровня
- .NET-разработчикам, которые хотят глубже понимать CLR
- Backend-разработчикам, работающим с производительными сервисами
- Специалистам, занимающимся оптимизацией приложений
- Разработчикам, которым важно понимать устройство памяти и сборку мусора
- Тем, кто хочет писать производительный C# без случайных аллокаций и лишних копирований
- Инженерам, желающим лучше понимать работу Roslyn и сгенерированного компилятором кода
- Вы будете понимать, как C#-код компилируется и выполняется внутри CLR
- Сможете анализировать внутреннее устройство сложных языковых конструкций
- Научитесь выявлять источники лишних аллокаций и нагрузки на сборщик мусора
- Сможете увереннее оптимизировать LINQ и работу с коллекциями
- Освоите современные подходы к высокопроизводительной обработке данных
- Научитесь использовать знания о компиляторе и памяти при проектировании приложений
- Сможете создавать более быстрый, надежный и предсказуемый .NET-код
Продажник:
Для просмотра вы должны войти или зарегистрироваться.
Скачать:
Скрытое содержимое могут видеть только пользователь группы: PRO
Качать без ограничений Купить доступ к 1 теме
Качать без ограничений Купить доступ к 1 теме
Скрытое содержимое для пользователей: Ferr