производительность через статические переменные в фортране

В Fortran вы не можете рекурсивно вызывать подпрограммы или функции без явного объявления их как recursive. Программист на Фортране сказал мне, что из-за этого компилятор может выделить статическое хранилище для всех локальных переменных, что увеличивает скорость работы программы. Я очень удивлен этим утверждением, поскольку большинство современных процессоров оптимизированы для быстрого обращения к стеку. Я думаю, что локальные переменные, которые загружаются со статического адреса, вероятно, вызывают много промахов кеша, поскольку статический адрес не используется другими подпрограммами, в отличие от стека.

Есть ли реальное ускорение от локальных переменных по статическим адресам? Какие другие оптимизации возможны, запрещающие рекурсивные подпрограммы и функции?

6
задан fuz 23 July 2012 в 09:32
поделиться