скорость доступа к переменным const в c / C++

доступ const переменные быстрее, чем не-const переменной? Мне интересно, Стоит ли использовать const более как шаг в оптимизации программы.

2 ответов


ответ на ваш вопрос может быть.

Как отметил Бьорн, на этот вопрос можно ответить только путем тщательного бенчмаркинга, потому что слишком много архитектурных конкретных причин, по которым ответ может быть да или нет.

здесь StackOverflow ссылка на бенчмаркинг:

Если вы работаете над проектом, где скорость имеет значение, то единственный способ узнать, что делает компилятор и как он влияет на скорость, - это прочитать сгенерированная сборка и выполнение тщательного бенчмаркинга. Теоретизируя о том, что компилятор мог бы do не продуктивно. Если вы работаете над встроенной системой, осциллограф-отличный способ времени, на машинах с большим количеством ресурсов полезен таймер с высоким разрешением, предоставляемый ОС.


, если значение постоянная времени компиляции (например,цифры, enum, const значения, constexpr иногда в C++11 и так далее), то да они может быть быстрее по сравнению с другими переменными. Их можно даже поместить в сегмент кода.

однако это не так для любого const:

const int x = 5;  // can be faster
const int c = foo(); // normal non-modfiable variable, normal speed

из примера вы можете видеть, что все немодифицируемые переменные не время компиляции константы.