сегодня в 16:17
Так вот если продолжать метафору, курс направлен на программный выход из Матрицы. Прослушав курс, проделав прямо на месте практические задания, вы научитесь выходить из .Net средствами .Net. Менять структуру типов .Net не прибегая к рифлексии. Вмешиваться в процесс многопоточности, и проделывать по-настоящему шаманские вещи -)
Я очень надеюсь, что программа Вам очень понравится, т.к. по сути — это результат собственных исследований, и все что тут есть, нагуглить не получится :)
Программа мастер-класса
Основы управления памятью в .Net и не только
- Small Objects Heap/Large Objects Heap
- Thread Stack, High / Low Frequency Heaps, Code Heap, Stubs Heap
- Ephemeral Segments
- Pages, Memory mapped files
Как устроены объекты в памяти
- Как устроен любой Object? Что он содержит?
- MethodTable
- EEClass
- Son Of Strike (SOS) расширение отладчика для просмотра внутренностей объектов .Net
- Основные команды отладчика
- Рассмотрим что в реальности представляют из себя объекты в памяти
- Считаем sizeof() любого .Net типа (стандарнтый sizeof считает только по Value типам)
Практика: базовые трюки
- Получаем указатель на объект.Net, исследуем его реальную структуру
- Практически интересный пример: передаем объекты между AppDomains без сериализации: без накладных расходов.
- Практически интересный пример: загружаем сборку так что ее типами можно пользоваться в текущем домене, но при этом ее можно отгрузить.
- Немного развлечемся: создадим RefType экземпляр на стеке
- Что такое Исключение? Какие структуры данных создаются при написании try/catch/finally? Как их получить и как ими управлять? Почему исключение безошибочно пробрасывается через методы, которые не поддерживают исключения?
- Помещаем в цепочку свой обработчик, который будет просто слушать все что через него идет.
- Вручную, без catch перехватываем исключение
- Как реализуется catch(){ throw; }
Практика: продвинутые трюки
- Разрабатываем класс для выделения .Net объектов вне .Net памяти (вне SOH/LOH)
- Пишем пул объектов вне .Net памяти
- Вызываем конструктор по указателю — избавляемся от тормозов рефлексии
- Практически интересный пример: Создаем прокси-тип, подменяя указатели на скомпилированные тела методов
- Практически интересный пример: Пишем ядро Memory Profiler’а — делаем дамп виртуальной памяти с распознанием .Net объектов в ней.
- Создадим тип вручную прямой генерацией внутренних структур CLR (таблиц виртуальных методов и интерфейсов)
- Практичеcки интересный пример: Расшарим .Net объект между процессами (через использование Paging файла)
- Практичеcки интересный пример: Пишем метод fork(): метод, создающий поток, который стартует с того же места, на котором был вызван fork (ветвление потоков) — C++/CLI/asm
Когда и где?
- 16-го мая, в Пятницу, с 18:00 до 23:00, Москва, 1-й Волоколамский проезд, д.10, стр. 3. Так что если отпрашиваться с работы, то совсем не на долго. Если будет много регистраций, то вторую часть проведем в субботу. Тут все welcome: пишите на почту, кому когда удобнее (sunex.development@gmail.com)
Страница регистрации:
Что от вас надо:
- Прийти с ноутбуком и установленной Visual Studio. Я вам на почту скину перед началом ссыль на DropBox или Google Drive с файлами (будет MSIL, C++/CLI, которые писать долго без подготовки, а потому — можем все не успеть). Их — надо будет скачать и проверить.
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий