C++ (N)RVO | Copy ellision | Оптимизации компилятора

C++ (N)RVO | Copy ellision | Оптимизации компилятора

3.816 Lượt nghe
C++ (N)RVO | Copy ellision | Оптимизации компилятора
Boosty: https://boosty.to/polevoydmitry TG: https://t.me/polevoydmitry В этом видео мы поговорим о том, как компилятор оптимизирует код в C++ с помощью: - RVO (Return Value Optimization) - NRVO (Named Return Value Optimization) - Copy elision - Temporary materialization Зачем нам это знать? 1. Чтобы не удивляться, почему стек вызовов в нашей программе выглядит не так, как мы его написали. 2. Понимая, при каких условиях компилятор делает оптимизации, мы не будем «улучшать» код, делая его на самом деле медленнее и неэффективнее. Так что – приятного просмотра! 00:00 - Начало 00:48 - Зачем нам это знать 01:47 - Пример с флагом `-fno-elide-constructors` 04:42 - Copy Elision и RVO на практике 05:40 - до C++17 и после 08:20 - NRVO и его ограничения 10:41 - Как `std::move` ломает оптимизации 13:33 - Закрепляем знания 14:20 - Temporary Materialization и категории значений 18:52 - Заключение