Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Как ускорять динамический код при помощи Expression Trees?

Автор: Dev Jungles - Andrii Podkolzin

Загружено: 2023-07-27

Просмотров: 6263

Описание:

#DevJungles #dotnet #expressions

Telegram канал Dev Jungles - https://t.me/DevJungles

Поддержать канал можно:
Подписавшись на Patreon: patreon.com/user?u=79336362
Спонсорством на YouTube
Переводом на карту или пополнением банки монобанка:
Dev Jungles YouTube Channel Fund
https://send.monobank.ua/jar/7iAP3sZkm9

Номер карты банки:
5375 4112 0230 1466

Или криптой:
BTC - 18C3jsFYwviN5FvzpAt4uMWRfUeVKvdWxy
ETH - 0x2903f63ba9009732272e91a299053b9d7b623216

USDT on ERC20 - 0x2903f63ba9009732272e91a299053b9d7b623216
USDT on TRC20 - TSmS5RzQKbWdxZkoM2oRo9HK8FYBaq744T

LTC - LN3CkrnvZLZTXDUhqTy1gUKMVpLjEPA4G2

DOGE - DPwon439jf3axVSBwyuXso6z7CivuJF655
AAVE - 0x2903f63ba9009732272e91a299053b9d7b623216
Waves - 3P8D57Zw7CrqW2o7dHpvZR2UzAzQRFA2kZd


Полный стрим: https://youtube.com/live/T7ogOUPeFhI

Если никогда не слышали про Expresion Trees, то зачем они вам могут понадобится:
Строить динамические фильтры на основе данных пользователя
Где-то ускорять рефлексию, если она стала узким местом
Выстраивать потрясающие API, что реализуют Open-Closed принцип из SOLID настолько, насколько это вообще возможно.

Когда программе на вход подают программу и что-то выдают на выход, это называется метапрогрммирование. В целом, иногда даже наоборот: программе скармливают данные, аргументы и параметры и на выход она отдает программу.

Таким образом первой метапрограммой с которой сталкивается любой разраб будет компилятор. Ну или интерпретатор, если вы из Этих. Затем могут следовать различные scaffold программы и простенькие кодогенераторы вроде того что генерирует вам DbContext из БД на удаленном сервере.

C# довольно богат инструментами метапрограммирования. У нас как минимум есть:
Продвинутая рефлексия
Деревья выражений (aka Expression Trees)
Динамическая компиляция
Reflection.Emit
Roslyn Compiler Platform, что открывает нам путь к своим анализаторам и генераторам кода(Source Generators and Source Analyzers)

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

Но с чего-то нужно начинать. Я долго откладывал эту тему опасаясь, что не раскрою ее достойно за один раз. Что бы перестать боятся решил начать с чего-то небольшого, а потом на это навешивать многие уровни.


Тайм-коды:
00:00 - Тизер
01:42 - Пример написание Expression
16:37 - Запуск бенчмарков для сравнения Expression Trees и рефлексии
22:41 - Анализ результатов бенчмарка
24:55 - Закешировали рефлексию и перезапустили бенчмарк
28:54 - Анализ результатов бенчмарка
29:20 - проблема дублирования кода
35:12 - Кеширование лямбды
38:17 - Андрей нас обманул

Как ускорять динамический код при помощи Expression Trees?

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

10 худших моментов языка C#, которые прочувствуют только профи

10 худших моментов языка C#, которые прочувствуют только профи

Вопросы с собеседований - Async/Await

Вопросы с собеседований - Async/Await

Base44 review | Best no code app builder in 2026?

Base44 review | Best no code app builder in 2026?

Когда использование асинхронных методов идёт во вред? async/await на dotTrace Timeline

Когда использование асинхронных методов идёт во вред? async/await на dotTrace Timeline

Методы AsEnumerable и AsQueryable бесполезны?

Методы AsEnumerable и AsQueryable бесполезны?

Анатолий Жмур — Пиши, как тиктокер, а не как дед. Новые конструкции языка C# в бою

Анатолий Жмур — Пиши, как тиктокер, а не как дед. Новые конструкции языка C# в бою

Топ 15 вопросов по многопоточности в C#/.NET. Подробный разбор

Топ 15 вопросов по многопоточности в C#/.NET. Подробный разбор

Модель CPU и Assembler к нему на чистом C#. Понять CPU и оптимизировать все

Модель CPU и Assembler к нему на чистом C#. Понять CPU и оптимизировать все

Кто быстрее? Оптимизирую по комментариям: SQLite, memory traffic, LINQ

Кто быстрее? Оптимизирую по комментариям: SQLite, memory traffic, LINQ

Как код на C# превращается в ASM? Как работает полиморфизм на уровне БАЙТ!

Как код на C# превращается в ASM? Как работает полиморфизм на уровне БАЙТ!

Как устроена многопоточность в .net

Как устроена многопоточность в .net

CLRium #6: async/await. Машина состояний (Дмитрий Тихонов).

CLRium #6: async/await. Машина состояний (Дмитрий Тихонов).

Топ 15 вопросов по .NET для всех уровней. Разбор

Топ 15 вопросов по .NET для всех уровней. Разбор

ASP.NET Global Exception Handling | Глобальная Обработка Исключений

ASP.NET Global Exception Handling | Глобальная Обработка Исключений

async/await в ASP.NET Core. Асинхронный код

async/await в ASP.NET Core. Асинхронный код

Пишем свой Assembler: Вызов функции и управление памятью / Stack-машина

Пишем свой Assembler: Вызов функции и управление памятью / Stack-машина

Вопросы с собеседований - Микросервисы | Инфраструктура

Вопросы с собеседований - Микросервисы | Инфраструктура

Вопросы собеседования на C# программиста

Вопросы собеседования на C# программиста

Вопросы с собеседований - Алгоритмы и структуры данных и ООП

Вопросы с собеседований - Алгоритмы и структуры данных и ООП

Видео курс C# Professional. Урок 15. Async Await

Видео курс C# Professional. Урок 15. Async Await

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com