По сравнению с
в C ++ для Windows.
Вызов функции - это фактически копирование параметров в стек (множественный доступ к памяти), сохранение регистров, фактическое выполнение кода и, наконец, копирование результатов и восстановление регистров (регистры сохранения / восстановления зависят от системы).
Итак .. говоря относительно:
Стоимость вызова функции зависит от архитектуры. x86 значительно медленнее (несколько тактов плюс примерно один час на аргумент функции), тогда как 64-битный намного меньше, потому что большинство аргументов функции передаются в регистры, а не в стек.
Если функция встроена во время компиляции, стоимость функции становится равной 0.
0, конечно, то, что вы получили бы, если бы не было вызова функции, то есть: сами сделали это.
Это, конечно, звучит слишком очевидно, когда я так пишу.
Для вызова функции обычно требуется всего несколько копий памяти (часто в регистры, поэтому они не должны занимать много времени), а затем операция перехода. Это будет медленнее, чем доступ к памяти, но быстрее, чем любые другие операции, упомянутые выше, потому что они требуют связи с другим оборудованием. То же самое обычно должно выполняться для любой комбинации ОС / языка.
Зависит от того, что делает эта функция, она заняла бы второе место в вашем списке, если бы выполняла логику с объектами в памяти. Далее вниз по списку, если он включает доступ к диску / сети.