Как стать автором
Обновить
0

Встреча .Net сообщества на CLRium #2. Как устроен и работает CLR, Roslyn, RyuJIT, CoreFx

Время на прочтение4 мин
Количество просмотров8.5K
Я не люблю заезженное слово «конференция». Это — встреча разработчиков с общими интересами, которые хотят послушать о трюках, которые позволяют обходить правила, установленные в.Net Framework, которым интересна тема использования меняющих и создающих языки, тулов. А также, что можно получить если знаешь как компилировать и декомпилировать приложение. Об этом не говорят. Потому что разговор на эту тему слишком долгий чтобы уместить в формат одного часа стандартного выступления на конференциях. Я пробовал выступать на .NEXT, и помимо положительных отзывов были «галопом по Европам». Согласен, за час не уложиться. Добро пожаловать в полный формат!

Я надеюсь, в вашей памяти теплится еще прошлый CLRium и сейчас никто не отчаивается и яро смотрит на технологии и все с удовольствием готовы их поглощать. Я помню и время от времени поглядываю на ваши многочисленные отзывы, которые греют мое желание провести все еще раз. Причем на этот раз — с хорошей и полезной практикой.

Теперь у нас целых два дня. Причем вы можете купить билет как на один, так и на оба дня. Первый день — как в прошлый раз: много хардкора, не практичного, но очень интересного… Позволяющего еще лучше понять как все работает и как этим можно воспользоваться… Тем со временем еще немного накидаю. Много мяса на любителя. И второй — практика. Второй длиннее первого. На час =). Во второй день будет очень много Roslyn, JetBrains Nitra (он же N2, он же Nemerle2)? RyuJIT, .Net Framework open sourced. Вот честно, я бы сам сходил

Почитать и зарегистрироваться



cool Примеры статей и полный список тем выступлений — под катом

О чем пойдет речь?


Анатомия .Net Framework CLR

В данном вопросе я варюсь уже около года и достаточно плотно изучил как устроен CLR в качестве структур данных чтобы рассказать вам о них максимально подробно. Интерес к данному мероприятию должен возникнуть как минимум потому что эта тема практически не освещена в Интернете и знания, которые вы получите, помогут Вам взглянуть на платформу под совершенно новым углом. Также данный раздел знаний по CLR является чрезвычайно интересным. Microsoft с каждым днем давит на нас словом «безопасность». А так ли она безопасна, эта CLR? А так ли много там «магии», позволяющей нам не думать о безопасности? Это авторский проект и является результатом исследований с отладчиком: каково строение.Net объектов в памяти и что с этим можно сделать.
  • Во-первых мы посмотрим на реальное строение объектов в памяти
  • Во-вторых мы исследуем структуры данных в памяти, относящиеся к построению виртуальных методов, реализации интерфейсов и классов (этого не было на CLRium #1)
  • Далее, на основе полученных данных мы построим прокси-тип в памяти
  • И исследуем возможность сделать множественное наследование в.Net
  • Также попробуем совместить в одном объекте и Java и.Net объект, запустив одновременно оба рантайма (привет, Xamarin)
  • После чего, воспользовавшись полученным опытом расшарим объект.Net между процессами так чтобы он одновременно существовал бы в обоих мирах.
  • Полученные знания мы используем для ответа на вопрос: какие стандартные конструкции языка приводят к проседанию производительности и каким образом?
  • Подключим компилятор и сделаем собственный JIT.



Roslyn:

  • Мы не будем делать вводную: в интернете все доклады – это вводные и вы их видели
  • Мы разберем от простого к сложному, как устроены существующие правила в поставке Roslyn (C# 6 features). Но рассмотрим не список, как это делают на конференциях, а их исходный код
  • Как только мы их рассмотрим, мы рассмотрим существующие метрики на Roslyn. Как они написаны, как строятся метрики кода.
  • Далее мы напишем не просто «подсчитаем количество букв «а» во всех словах исходных текстов, мы напишем поддержку кортежей для C#:
    var (x,y) = CalcCoords();
    	public (int,int) CalcCoords()
    	{
    	   return (0,0);
    	}
    
  • И сделаем Nemerle оператор match (описание).
  • ​​Это очень сложные примеры, которые так просто не напишешь за вечерок и это то, что вы хотите найти в сети Интернет, но не можете.


RyuJIT

  • Мы опишем что нам даст его использование
  • Попробуем запустить на нем проект и померить производительность приложения с ним и без него на наборе синтетических тестов
  • Рассмотрим сценарии, когда бы его открытость, которая близится с каждым днем, дала бы нам преимущества


CoreFx

Многие говорят что открытость.Net Framework для сообщества и предоставление сообществу возможностей для свободного внесения правок — это плохо и черевато бесконечными багами, небрежным кодом и не стабильным API. Так ли это?
  • Итоги полугода открытого.Net Framework CoreFx.
  • Возросшая производительность от 10х до 1000х кратной в некоторых местах
  • Закрытые баги
  • Соотношение кода сообщества к коду команды.Net Framework
  • Попробуем скомпилировать и разобрать по косточкам приложение, написанное под CoreFx


Что-то пропустили?

Если по-вашему мы что-то пропустили, пишите в комментах, о чем еще рассказать =)

Почитать похожее от автора


Перед тем как идти и регистрироваться, вам наверняка захочется узнать, что примечательного было в прошлый раз. Тут перечислены не все, конечно, но почти все темы с прошлой встречи:

Сслыки:



Контакты:
Теги:
Хабы:
Всего голосов 28: ↑24 и ↓4+20
Комментарии0

Публикации

Информация

Сайт
clrium.ru
Дата регистрации
Дата основания
Численность
1 человек (только я)
Местоположение
Россия
Представитель
Stanislav Sidristij

Истории