A volte i compilatori eseguono chiamate in linea. Ciò significa che spostano il codice della funzione chiamata nella funzione di chiamata. Questo rende le cose un po 'più veloci perché non c'è bisogno di spingere e far saltare le cose dentro e fuori dallo stack delle chiamate.
Quindi la mia domanda è: perché i compilatori non fanno tutto in linea? Presumo che renderebbe l'eseguibile notevolmente più veloce.
L'unica ragione per cui riesco a pensare è un eseguibile significativamente più grande, ma è veramente importante in questi giorni con centinaia di GB di memoria? Non vale la prestazione migliorata?
C'è qualche altra ragione per cui i compilatori non si limitano a inserire tutte le chiamate di funzione?