Использование глобальных переменных может как улучшить, так и снизить производительность программы. stackoverflow.com
Некоторые преимущества использования глобальных переменных:
- Возможность жёстко запрограммировать доступ к переменным. stackoverflow.com Это особенно актуально для процессоров, у которых нет кэша. stackoverflow.com
- Возможность передать два однобайтовых параметра более эффективно. stackoverflow.com Например, при использовании 8-разрядного компилятора микроконтроллера (HT-PICC18) установка глобальной переменной стоит две инструкции или два цикла на байт, а передача одного однобайтового параметра — одна инструкция или один цикл. stackoverflow.com
Некоторые недостатки использования глобальных переменных:
- Повторная загрузка значений глобальных переменных в память. www.regatta.cs.msu.su Если явно не указано иное, компилятор предполагает, что вызванная подпрограмма может изменять значения всех глобальных переменных. www.regatta.cs.msu.su После вызова подпрограммы значения всех глобальных переменных загружаются в память повторно, что приводит к снижению производительности. www.regatta.cs.msu.su
- Проблемы при многопоточном использовании. qna.habr.com www.gunsmoker.ru Глобальные переменные одновременно меняются из разных потоков, и без синхронизации могут возникнуть зависания, утечки памяти и другие проблемы. www.gunsmoker.ru
Таким образом, влияние глобальных переменных на производительность программы зависит от конкретных условий и обстоятельств.