Модель памяти .NET

Зал 2 | 13:30

RU

Программы обычно пишутся людьми, а исполняются компьютером. За время существования ЭВМ была проделана огромная работа по снижению порога вхождения в программирование: сейчас не требуется знать, как работает компьютер, чтобы суметь заставить его сделать какое-то действие. Однако ничего не даётся даром, и за высокоуровневыми языками скрыто много восхитительных вещей. В некоторых случаях незнание того, что творится «внизу», может приводить к печальным последствиям. А когда речь идёт о concurrency и кроссплатформенности, то и вовсе кругом драконы с подводными граблями.

В докладе мы попытаемся рассказать, что такое модель памяти, какая она в .NET, что нам гарантирует спецификация, что даёт платформа, какие можно ожидать проблемы при выходе из зоны комфорта: уход в сторону lock-free, запуск на других архитектурах (например, ARM). Также будет показано, что некоторые проблемы могут быть найдены несложным статическим анализом (доклад не про статический анализ, поэтому подробности отдельно). Среди прочего, будет показано, что в .NET тоже бывают баги.


Валерий Петров
Валерий Петров

Sidenis

.NET Developer в компании Sidenis. На работе по большей части «кровавый энтерпрайз», но есть «гильдийное» время, которое (совместно со свободным временем) используется для изучения «кишочков», особенно того, что касается concurrency, ведь чтобы узнать что-то хорошо, надо копнуть как минимум на уровень глубже, чем используешь.


Все доклады