Thread Local в C++: как он есть
Details
Thread Local в C++: как он есть, Евгений Ерохин
Доклад посвящен такой уже вроде бы устоявшейся фиче C++ как thread_local. Но несмотря на то что стандартизована она еще в C++11, мало кто понимает что за машинерия за этим стоит. Как и в каких случаях мы получаем этот функционал бесплатно, а когда в ход идет тяжелая артиллерия.
Доклад рассматривает имплементацию фичи в Linux, как платформы с самой полной поддержкой этой фичи языка. И к тому же продолжающая ее развивать для получения максимального перформанса.
- В докладе будут рассмотрено раннее POSIX решение.
 - Имплементация в языке и 4 “Традиционные” модели Thread Local.
 - Более продвинутая но еще не везде применяющаяся Дескрипторная модель.
 - Рассмотрены особенности при работе с thread_local объектами и подводные камни связанные с ними.
 - В течении доклада будут представлены ассемблерные листинги с коментариями к ним.
 - Так же будет продемонстрированы бенчмарки.
 
Целевая аудитория, более опытные программисты с минимальными знаниями ассемблера x86. Из доклада аудитория почерпнет знания о том какое реальное время жизни их thread_local объектов. В каких случаях можно безболезненно пользоваться этой фичей а в каких случаях можно потерять перформанс при использовании thread_local. И каким образом можно обойти эти проблемы.
О докладчике:
Старший разработчик в компании DINS. В данный момент занимаюсь разработкой сервиса передачи видео в реальном времени.
За плечами более 10 лет опыта работы в Paragon Software на позиции ведущего разработчика. Разрабатывал драйвера файловых систем под macOS, занимался имплементацией файловых систем, системы снепшотинга блочных (дисковых) устройств, boot загрузчика, реверс-инженирингом и другими низкоуровневыми задачами.
В свободное время занимаюсь изучением устройства операционных систем и процессорных архитектур.







