// This program does not uses loop unrolling. #include int main(void) { for (int i=0; i<5; i++) printf('Hellon'); //print hello 5 times return 0; }
Program 2: CPP // This program uses loop unrolling. #include int main(void) { // unrolled the for loop in program 1 printf('Hellon'); printf('Hellon'); printf('Hellon'); printf('Hellon'); printf('Hellon'); return 0; }
Output: Hello Hello Hello Hello HelloIlustracija: Program 2 je učinkovitiji od programa 1 jer u programu 1 postoji potreba za provjerom vrijednosti i i povećanjem vrijednosti i svaki put u krugu petlje. Dakle, male petlje poput ove ili petlje u kojima je uključen fiksni broj ponavljanja mogu se potpuno odmotati kako bi se smanjilo opterećenje petlje.
Prednosti:
- Povećava učinkovitost programa.
- Smanjuje opterećenje petlje.
- Ako naredbe u petlji ne ovise jedna o drugoj, mogu se izvoditi paralelno.
Nedostaci:
- Povećana veličina programskog koda što može biti nepoželjno.
- Moguća povećana upotreba registra u jednoj iteraciji za pohranu privremenih varijabli što može smanjiti izvedbu.
- Osim vrlo malih i jednostavnih kodova, odmotane petlje koje sadrže grane čak su sporije od rekurzija.