Compilers
Hoeveel keer worden de iteratietest en sprong uitgevoerd als een lus met 100 iteraties wordt herschreven met loop unrolling waarbij de body viermaal achter elkaar wordt gezet? (100 is deelbaar door 4.)
- A100 keer
- B25 keer
- C400 keer
Antwoord en toelichting tonen
Antwoord: B. 25 keer
Als de body viermaal achter elkaar wordt gezet, voert één iteratie het werk van vier oorspronkelijke iteraties uit, zodat het aantal iteraties 100 ÷ 4 = 25 wordt en ook de iteratietest en sprong 25 keer plaatsvinden. Vergeleken met de oorspronkelijke 100 wordt de overhead van sprongen enz. een vierde. Als het aantal niet deelbaar is door 4, wordt achteraan een korte lus toegevoegd om het restant te verwerken. 100 keer is het aantal zonder unrolling en 400 keer is een foutief vermenigvuldigde waarde van het aantal bewerkingen in de body.