Как работает .NET Runtime? Ковыряем вызов virtual методов. Как работает JIT? С# - IL - ASM?
#DevJungles #dotnet #ityoutubersru
Telegram канал Dev Jungles -
Поддержать канал можно:
- Спонсорством на YouTube
- Переводом на карту или пополнением банки монобанка:
Dev Jungles YouTube Channel Fund
Номер карты банки:
5375 4112 0230 1466
- Или криптой:
BTC - 18C3jsFYwviN5FvzpAt4uMWRfUeVKvdWxy
ETH - 0x2903f63ba9009732272e91a299053b9d7b623216
USDT on ERC20 - 0x2903f63ba9009732272e91a299053b9d7b623216
USDT on TRC20 - TSmS5RzQKbWdxZkoM2oRo9HK8FYBaq744T
LTC - LN3CkrnvZLZTXDUhqTy1gUKMVpLjEPA4G2
DOGE - DPwon439jf3axVSBwyuXso6z7CivuJF655
AAVE - 0x2903f63ba9009732272e91a299053b9d7b623216
Waves - 3P8D57Zw7CrqW2o7dHpvZR2UzAzQRFA2kZd
Буду рассказывать про то, как CLR загружает и выполняет код в памяти, будем смотреть ассемблерные листинги, и даже сможем сделать override для sealed метода. Как вам такое?
А еще эти трюки пригодятся, для того что бы написать плагин к какой то программе, которая вообще-то не предусматривает написание плагинов.
Вы знаете как можно замокать статический метод? Наверняка скажите, что Moq или NSubstiture это умеют, но как это работает под капотом?
А что делать если в системной библиотеке оказалась проблема: где найти рычажки, что бы влезть в это и исправить?
А еще вам сюда, если вам по зарез как нужно пропатчить что-нибудь от чего у вас нет исходников! Расскажу как это можно сделать!
Будем ковырятся и в листингам памяти и в ASM, посмотрим как JIT раскладывает методы в оперативной памяти.
Таймкоды:
00:00 - Начало стрима
00:45 - Как работает .Net
11:30 - Работа JIT - компилятора
21:00 - Проверка полученной информации на практике
25:00 - Просмотр работы JIT в DisAssambly
34:00 - Сколько занимает Jitting
41:00 - Пример из жизни когда Ngen помог уделать конкурентов
43:30 - Как ovveridе-ить метод в sealed классах
47:40 - GetFunctionPointer и для чего он нужен
48:50 - Принудительный Jitting методов
50:00 - void* - что ты такое?
51:00 - Добавляем unsafe
52:55 - Объяснение как заоверрайдить метод в sealed классе
59:05 - Проверка override
59:30 - Почему в проекте с оверрайдом моков не надо включать unsafe
1:02:30 - Как сделать ovveride и сохранить возможность вызова базового метода
1:09:30 - Библиотека
1:14:20 - Для чего это вообще нужно
1:15:40 - Пример использования
1:22:40 - Почему этот стрим нельзя показывать вашим менеджерам
1:22:58 - Как работает метод Patch
1:27:20 - Как получить все ссылки на объект
1:36:50 - Кто разработал Harmony
1:43:00 - Когда это все использовалось на практике
1 view
30
6
9 years ago 00:09:09 2.3K
Как работает TSI
9 years ago 00:12:22 4.1K
Как работает липучка
11 years ago 00:04:40 965
Как работает пистолет Стриж.
4 years ago 00:02:51 18
Плиткорез: как выбрать, как работает
5 years ago 00:11:23 108
Как работает отбеливатель?
5 years ago 00:02:15 28
Как работает профессиональный помбур
5 years ago 00:04:54 22
Как Работает Подушка Безопасности
10 years ago 00:02:48 19.9K
Как работает АК 47
9 months ago 00:04:02 846
Как работает маскировка
10 years ago 00:13:42 902
Как работает турбина
10 years ago 00:04:53 7.8K
Как работает ваш мозг
6 years ago 00:02:48 53
Крючковяз. Как он работает?
9 years ago 00:05:23 141
Как работает мышление
4 years ago 00:05:30 60
Как работает Поиск?
5 years ago 00:05:00 76
Струны (Как это работает)
10 years ago 00:11:42 6.4K
Работа ДВС как работает турбонаддув
4 years ago 00:23:44 45
Выпуск 35. Как работает ForkJoinPool.
6 years ago 00:01:36 89
Как работает Ночлежка
11 years ago 00:01:51 9.1K
Как работает АК
7 years ago 00:03:31 834
Как работает сцепление? (Анимация)
6 years ago 00:04:54 54
Как это работает - Производство солнечных батарей
5 years ago 00:04:16 107
Принцип работы шуруповерта. Как работает шуруповерт.