Compiler
Welche Kombination aus Vor- und Nachteil des Inlinings von Funktionen ist richtig?
- AVorteil ist kleinerer Code, Nachteil ist mehr Aufrufaufwand
- BVorteil ist schnellere Kompilierung, Nachteil ist, dass sich das Ausführungsergebnis ändert
- CVorteil ist der entfallende Aufrufaufwand, Nachteil ist größerer Code
Antwort und Erläuterung anzeigen
Antwort: C. Vorteil ist der entfallende Aufrufaufwand, Nachteil ist größerer Code
Beim Inlining wird anstelle des Aufrufs der Funktionsrumpf eingefügt, sodass der Aufwand für Argumentübergabe, Sprung und Rückkehr entfällt. Ein großer Vorteil ist zudem, dass Konstanten usw. der aufrufenden Seite in den Rumpf propagiert werden und Constant Folding sowie Entfernung von totem Code greifen. Andererseits entsteht bei jedem Aufruf eine Kopie des Rumpfs, der Code wächst, und es können mehr Instruktionscache-Misses auftreten; daher werden kleine oder häufig aufgerufene Funktionen ausgewählt. Bei korrekter Ausführung ändert sich das Ergebnis nicht.