Svolgimento del ciclo

Lo srotolamento del loop è una tecnica di trasformazione del loop che aiuta a ottimizzare il tempo di esecuzione di un programma. Fondamentalmente rimuoviamo o riduciamo le iterazioni. Lo srotolamento del loop aumenta la velocità del programma eliminando le istruzioni di controllo del loop e le istruzioni di test del loop. Programma 1: CPP
   // This program does not uses loop unrolling.   #include      int     main  (  void  )   {      for     (  int     i  =  0  ;     i   <  5  ;     i  ++  )      printf  (  'Hello  n  '  );     //print hello 5 times      return     0  ;   }      
Programma 2: CPP
   // This program uses loop unrolling.   #include      int     main  (  void  )   {      // unrolled the for loop in program 1      printf  (  'Hello  n  '  );      printf  (  'Hello  n  '  );      printf  (  'Hello  n  '  );      printf  (  'Hello  n  '  );      printf  (  'Hello  n  '  );      return     0  ;   }      
Output:
Hello Hello Hello Hello Hello  
Illustrazione: Il programma 2 è più efficiente del programma 1 perché nel programma 1 è necessario controllare il valore di i e incrementare il valore di i ogni volta che si esegue il ciclo. Quindi piccoli loop come questo o loop in cui è coinvolto un numero fisso di iterazioni possono essere srotolati completamente per ridurre il sovraccarico del loop.

Vantaggi:

  • Aumenta l'efficienza del programma.
  • Riduce il sovraccarico del ciclo.
  • Se le istruzioni in loop non dipendono l'una dall'altra possono essere eseguite in parallelo.

Svantaggi:

  • Maggiore dimensione del codice del programma che può essere indesiderabile.
  • Possibile maggiore utilizzo del registro in una singola iterazione per archiviare variabili temporanee che potrebbero ridurre le prestazioni.
  • A parte i codici molto piccoli e semplici, i cicli srotolati che contengono rami sono persino più lenti delle ricorsioni.
Riferimento: https://en.wikipedia.org/wiki/Loop_unrolling Crea quiz