noexcept может повлиять на производительность программы несколькими способами: 3
- Компилятору не нужно выполнять определённую настройку. 3 Если из функции не будут распространяться исключения, компилятору не придётся создавать инфраструктуру для раскрутки стека и её демонтажа на входе и выходе из функции. 3 Чем чаще вызывается функция, тем важнее этот эффект. 3
- Стандартная библиотека использует информацию о noexcept. 3 Она на её основе принимает решение о том, какие операции выбрать — копирования, которые обычно медленные, или перемещения, которые могут быть на порядок быстрее, при выполнении распространённых операций, например, увеличении размера вектора. 3 Если перемещающие операторы не помечены спецификатором noexcept, компилятор предпочтёт не рисковать и выберет копирующие операции. 2
Таким образом, использование noexcept может ускорить работу программы, сократив количество альтернативных путей выполнения и ускорив выход после сбоя. 3