Иногда компиляторы вызывают вызовы встроенных функций. Это означает, что они перемещают код вызываемой функции в вызывающую функцию. Это делает вещи немного быстрее, потому что нет необходимости вставлять и извлекать вещи из стека вызовов.
Итак, мой вопрос: почему компиляторы не встроены во все? Я предполагаю, что это сделает исполняемый файл заметно быстрее.
Единственная причина, по которой я могу придумать, - это значительно больший исполняемый файл, но действительно ли это важно в наши дни с сотнями ГБ памяти? Разве улучшенная производительность не стоит того?
Есть ли какая-то другая причина, почему компиляторы не просто встроили все вызовы функций?
Isn't the improved performance worth it?
Для метода, который будет запускать цикл 100 раз и обрабатывать некоторые серьезные числа, издержки на перенос 2 или 3 аргументов в регистры ЦП ничего не значат.