Загрузка страницы

Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠ CoreHard Autumn 2019

На дворе 21-й век, непроизводительная реализация обработки C++ исключений на основе setjmp/longjmp уже в прошлом. Современные компиляторы, такие как gcc и clang, используют продвинутую реализацию C++ исключений, называемую zero-cost exception handling. Но насколько действительно это zero-cost? Да, мы платим увеличением размера бинарного файла, а также в случае, когда исключение действительно выбрасывается, запуская процесс stack unwinding, вызывая деструкторы для локальных объектов и т.д. Но теряем ли мы производительность, если исключение не выбрасывается? Появляются ли какие-то ограничения на компиляторные оптимизации? В этом докладе дано описание того, каким образом С++ исключения оказывают влияние на компиляторные оптимизации. Какие оптимизации не могут быть применены в случае, если функция может бросить исключения, а какие оптимизации становится труднее применять. Примеры реализации исключений и компиляторных оптимизаций рассматриваются на базе LLVM. Доклад преследует цель дать людям понимание, когда делать сборку своего приложения с -fno-exceptions имеет смысл, а когда можно наслаждаться всеми прелестями использования C++ исключений, зная, что их код не значительно потерял в производительности по сравнению с кодом, где исключения отключены.

Слайды: https://www.slideshare.net/corehard_by/c-corehard-autumn-2019

Join CoreHard community:
CoreHard Telegram https://t.me/corehard_by
CoreHard Facebook https://www.facebook.com/corehard.by/
CoreHard Vkontakte https://vk.com/corehardby
CoreHard Instagram https://www.instagram.com/corehard.by/

Видео Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠ CoreHard Autumn 2019 канала corehard
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
14 декабря 2019 г. 10:38:58
00:36:06
Другие видео канала
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019Исключительная модель памяти. Алексей Ткаченко ➠  CoreHard Autumn 2019Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019Как помочь и как помешать компилятору. Андрей Олейников ➠  CoreHard Autumn 2019Как помочь и как помешать компилятору. Андрей Олейников ➠ CoreHard Autumn 2019Статичный SQL в С++14. Евгений Захаров ➠  CoreHard Autumn 2019Статичный SQL в С++14. Евгений Захаров ➠ CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019Generators, Coroutines and Other Brain Unrolling Sweetness. Adi Shavit ➠  CoreHard Autumn 2019Generators, Coroutines and Other Brain Unrolling Sweetness. Adi Shavit ➠ CoreHard Autumn 2019Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Autumn 2019Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Autumn 2019Этюды о буферизации. Вадим Винник ➠ CoreHard Autumn 2019Этюды о буферизации. Вадим Винник ➠ CoreHard Autumn 2019Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn 2019Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn 2019Striving for ultimate low latency. Mateusz Pusz ➠ CoreHard Autumn 2019Striving for ultimate low latency. Mateusz Pusz ➠ CoreHard Autumn 2019C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019The C++ rvalue lifetime disaster. Arno Schödl ➠ CoreHard Autumn 2019The C++ rvalue lifetime disaster. Arno Schödl ➠ CoreHard Autumn 2019Защищая C++. Павел Филонов ➠ CoreHard Autumn 2019Защищая C++. Павел Филонов ➠ CoreHard Autumn 2019Как работает LLVM бэкенд в C#. Егор Богатов ➠ CoreHard Autumn 2019Как работает LLVM бэкенд в C#. Егор Богатов ➠ CoreHard Autumn 2019Вы ещё пишете код руками? Тогда мы идём к вам! Сергей Садовников ➠ CoreHard Autumn 2019Вы ещё пишете код руками? Тогда мы идём к вам! Сергей Садовников ➠ CoreHard Autumn 2019C++20: The small things, Timur Doumler ➠ CoreHard Autumn 2019C++20: The small things, Timur Doumler ➠ CoreHard Autumn 2019New C++ features for writing DSLs . Ivan Čukić. CoreHard Spring 2019New C++ features for writing DSLs . Ivan Čukić. CoreHard Spring 2019Встраиваем python для появления аналитики в проекте на С++. Александр Боргардт. CoreHard Spring 2019Встраиваем python для появления аналитики в проекте на С++. Александр Боргардт. CoreHard Spring 2019Не связывайтесь с поддержкой C++ программистов. Юрий Минаев. CoreHard Spring 2019Не связывайтесь с поддержкой C++ программистов. Юрий Минаев. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
Яндекс.Метрика