// 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činkovitejši od programa 1, ker je v programu 1 treba preveriti vrednost i in povečati vrednost i vsakič, ko kroži po zanki. Majhne zanke, kot je ta, ali zanke, pri katerih je vključeno določeno število ponovitev, je mogoče popolnoma odviti, da zmanjšate stroške zanke.
Prednosti:
- Poveča učinkovitost programa.
- Zmanjša stroške zanke.
- Če stavki v zanki niso odvisni drug od drugega, se lahko izvajajo vzporedno.
Slabosti:
- Povečana velikost programske kode, ki je lahko nezaželena.
- Možna povečana uporaba registra v eni ponovitvi za shranjevanje začasnih spremenljivk, kar lahko zmanjša zmogljivost.
- Razen zelo majhnih in preprostih kod so razvite zanke, ki vsebujejo veje, celo počasnejše od rekurzij.