Переменные стека действительно могут считываться быстрее, чем переменные кучи внутри функции , в которой они определены. Все остальные функции получают только указатель / ссылку на переменную, которая аналогична той, что была бы для них. переменная, выделенная кучей.
Как правило, неразумно помещать большие переменные в стек, поэтому я предлагаю использовать консервативный подход и поместить ваш массив в кучу (например, использовать std::vector
).
Наконец, эта небольшая разница вряд ли повлияет на общую скорость вашей программы.
Оптимизация - это, как правило, область экспертов, или, по крайней мере, людей, которые достаточно глубоко разбираются в профилировщиках и имеют достаточное понимание базовой семантики и аппаратного обеспечения языка, а также того, как осуществляется перевод с высокого уровня на низкий уровень ... Эксперты, или подражать экспертам тогда:)
- предпочитают оптимизировать алгоритм , а не его реализацию (для начала)
- не прыгать (случайно) вокруг памяти
Если ваша функция все еще слишком медленная, тогда ... опубликуйте код! Хотя это может быть лучше подходит для codereview.stackexchange.com.