Compiler
Wie oft werden Zählerprüfung und Verzweigung ausgeführt, wenn eine Schleife mit 100 Iterationen durch Loop Unrolling mit viermal aneinandergereihtem Rumpf umgeschrieben wird? (100 sei durch 4 teilbar.)
- A100-mal
- B25-mal
- C400-mal
Antwort und Erläuterung anzeigen
Antwort: B. 25-mal
Wird der Rumpf viermal aneinandergereiht, führt eine Iteration die Verarbeitung von vier ursprünglichen Iterationen aus, die Zahl der Iterationen beträgt also 100 ÷ 4 = 25, und auch Zählerprüfung und Verzweigung werden nur 25-mal ausgeführt. Gegenüber den ursprünglichen 100 verringert sich der Aufwand für Verzweigungen o. Ä. auf ein Viertel. Ist die Zahl nicht durch 4 teilbar, wird dahinter eine kurze Schleife für den Rest angefügt. 100 ist die Zahl ohne Unrolling, 400 ein Wert, der durch fälschliches Multiplizieren der Rumpfverarbeitungen entsteht.