Подтвердить что ты не робот

Должен ли я использовать const для локальных переменных для лучшей оптимизации кода?

Я часто использую const для локальных переменных, которые не изменяются, например:

const float height = person.getHeight();

Я думаю, что он может сделать скомпилированный код потенциально быстрее, позволяя компилятору сделать еще некоторую оптимизацию. Или я ошибаюсь, и компиляторы сами могут выяснить, что локальная переменная никогда не изменяется?

4b9b3361

Ответ 1

Или я ошибаюсь, и компиляторы сами могут выяснить, что локальная переменная никогда не изменяется?

Большинство компиляторов достаточно умны, чтобы понять это сами.
Вы должны использовать const для обеспечения const-correctness, а не для микро-оптимизации.
const correctity позволяет компилятору помочь вам защититься от ошибок, поэтому вы должны использовать const везде, где это возможно, но по причинам ремонтопригодности и , препятствуя совершению глупых ошибок.

Хорошо понимать значения производительности кода, которые мы пишем, но следует избегать чрезмерной микрооптимизации. Что касается производительности, следует следовать,

80-20 Правило:

Определите 20% вашего кода, который использует 80% ваших ресурсов, через профилирование на репрезентативных наборах данных, и только затем попытайтесь оптимизировать эти узкие места.

Ответ 2

Это различие в производительности почти наверняка будет незначительным, однако вы, возможно, должны использовать const, если это возможно для кодовой документации. Часто, компиляторы могут понять это для вас в любом случае и сделать автоматизацию автоматически. const действительно больше читает код и четкость, чем производительность.